Unity IDE 上で apk ファイルをビルドする

このページは最新の Mobage Unity SDK 1.4.7.4 を使用しています。過去のバーションの導入方法につきましては 過去バージョンのドキュメント をご参考ください。
Mobage Unity SDK 1.4.7.4 より、Android 5.0 (API Level 21) を targetSdkVersion に指定する場合、Google Play Services の導入が必須になりました。

このページでは、Unity IDE 上で apk ファイルをビルドする方法について解説します。

  • Unity IDE から Mobage Unity SDK 同梱の Unity プロジェクトをインポートします。
  • apk ファイルをビルドします。
以下では、Unity のダウンロード・インストール・ライセンス登録まで終えていることを前提とします。

 

Unity IDE 環境から Mobage Unity SDK をインポートする

まず、Unity を起動し、新しい Unity Project を作成します。作成された新しいプロジェクトを開いた状態で、上メニューから「Assets」→「Import Package」→「Custom Packages…」を選択します。

ダイアログが表示されますので、MobageUnitySDK.unitypackage へのパスを指定します。全てにチェックが入っている事を確認し、右下の「Import」ボタンを押すとインポートが完了します。

Windows の場合、MobageUnitySDK.unitypackage が配置されているパス名にマルチバイト文字が使用されていると、インポートに失敗しますのでご注意下さい。

1.4.7.5 以降の場合、インポートが完了すると、以下の様な画面が表示されますので、input your AppId の右側のエディットボックスに Mobage の AppId を入力してください。

この作業を行うと、この後の MBAppId.txt と AndroidManifest.xml への AppId の入力が必要無くなります。

Unity5 に 1.4.7.5 以降のバージョンでバージョンアップした場合、ビルドが正しく通らないことがあります。その際には、1.4.7.5 以降をインポート後、Unity のメニューバーより「Mobage SDK」→「Clean Old SDK」を選択してください。

HelloMobageSample.unity を開く

パッケージのインポートが完了すると、Project ビューでインポートされた Mobage Unity SDK のファイルを確認することができます。次に、インポートした Mobage Unity SDK のファイルの中から、サンプルアセットを開きます。

Project ビューで Plugins/Mobage/samples/HelloMobageSample.unity (Unity のアイコンのファイル) をダブルクリックするとサンプルアセットが反映されます。Hierarchy ビューに、HelloMobageSample というオブジェクトが追加されます。


 

ゲームプレビュー画面でボタン表示を確認する

以上でボタン表示を行うサンプルの設定は終了です。Unity IDE 上部の再生アイコンを押すと、下記のようにゲームプレビュー画面が表示されます。プレビュー時はHierarchy ビューに、MobageCallback というオブジェクトが表示されます。

Unity IDE 上でスクリプトを編集する

Mobage Unity SDK の機能を使用する為にPlugins/Mobage/samples/Config.csに設定してください。

MobageCallback.AddCallback() の呼び出し

Mobage Unity SDK 1.4.7 以降、Awake() メソッドの先頭で、以下のように AddCallback() メソッドを呼び出す必要があります。

下記はAwake()メソッドの例です。

MobagePlatform#initialization() の呼び出し

Awake() メソッド内など、アプリケーション起動直後に下記のような初期化メソッドを呼び出します。

MBGPlatform#Initialize の引数には region, serverMode, consumerKey, consumerSecret, appId を指定します。

consumerKey, consumerSecret, appId は Mobage Developers 上でアプリケーションを登録していただくと発行されます。Mobage Developers 上の「Android アプリ設定」の中の「SDK 向け Consumer Key」「SDK 向け Consumer Secret」を入力してください。

ログインリスナーの登録

ログイン状態通知イベントを受け取る為に、以下のようにログインリスナーを登録してください。

 

 API 使用例:C# コードでユーザ情報を取得する

MobagePeople#getCurrentUser() を呼ぶメソッドは、Unity 上では下記のように記述できます。

API Reference

 
Example

 

Unity IDE で AndroidManifest.xml を編集する

Project ビューの Plugins/Android/AndroidManifest.xml を編集します。
フォルダ構成は下図のようになります。

AndroidManifest.xml の記述

AndroidManifest.xml は下記のようになります。

MobageDashboardActivity の screenOrientation に landscape を指定することで Mobage の UI が横画面で開くようになります。
2014/05/28 までは、singleTop または standard に設定して頂くようにお願いしていましたが、Unity SDK をお使いの場合には singleTask に設定していただくように変更いたしました。

下記の箇所は、お使いの環境に合わせて書き換えてください。

  • ${YourApplicationId}
    • アプリケーションID に書き換えてください。
      • Ex) 12009999

 

F.O.X for Mobage について

Mobage Unity SDK 1.4.7.4 より、F.O.X を取り外すことができるようになりました。1.4.7.4 以降、F.O.X for Mobage を取り外したバージョンの SDK ライブラリを同梱しています。
F.O.X for Mobage を利用する場合は、上記手順から何もする必要はありません。
F.O.X for Mobage を利用しない場合や、アプリケーションで独自に F.O.X SDK を組み込む場合には、AppAdForce.jar, MobageNativeSdk.jar をリンクせずに、代わりに /android/SDKWithoutFOX/MobageNativeSdk-withoutfox.jar をリンクします。

  1. Assets/Plugins/Android/AppAdForce.jar を削除
  2. Assets/Plugins/Android/MobageNativeSdk.jar を削除
  3. Mobage Unity SDK 1.4.7.4 以降のパッケージに含まれる /android/SDKWithoutFOX/MobageNativeSdk-withoutfox.jar を Assets/Plugins/Android へドラッグ&ドロップ

これで F.O.X for Mobage の取り外しが完了しました。

 

Google Play services Library の導入について

Google Play のポリシーが変更され、2014/08/01 から、Play ストアにアップロードされたすべての更新や新着アプリには、広告目的で使用する端末 ID として Advertising ID(端末で利用可能な場合)を使用する必要があります。

広告の成果のトラッキングのために Android で提供されている Advertising ID (以下、AdID) を利用する必要があります。AdID を使用するためには Google Play Services の 導入は必須です。 Google Play Serviceを導入しない場合、特定Android Versionでリモート通知が正常に動作しない等の不安定な状況になりますので、下記の導入方法に従って必ずGoogle Play Services を導入してください。

また、Mobage SDK 1.4.7.4 より、Android 5.0 (API Level 21) 以降を targetSdkVersion に設定する場合は、Google Play Services の導入が必須になりました。

導入方法

  1. Android SDK Manager を起動する。
  2. Extras > Google Play service にチェックを入れてインストールする。
     
  3. Unity プロジェクトの Plugins/Android フォルダーに ${ANDROID_SDK_PATH}/extras/google/google_play_services/libproject/google-play-services_lib をコピーする。

必ず Google Play services がインポートされているか確認する に従い、Google Play services がリンクされているか確認して下さい。正しくインポート設定がされていてもリンクされないことがあります。

Google Play Service のインポートを行ない Proguard を使用する場合

Google Play Service をインポートした場合に Proguard を使用する場合、 proguard.cfg や proguard-android.txt に以下の設定をする必要があります。

Google Play services がインポートされているか確認する

Google Play services ライブラリの中の AdvertisingIdClient というクラスがインポートされているか、必ず以下の方法で確認します。

  • 生成した apk ファイルを apktool 等で開き、/smali/com/google/android/gms/ads/identifier/AdvertisingIdClient.smali が含まれているか確認する。
  • SDK を組み込んだ状態でアプリを起動し、$adb logcat で以下のいずれかのログが出力されないことを確認する。

上記 2 点の方法で 問題あることを確認した場合、以下の方法で解決することがあります。

  • google-play-services_lib プロジェクトのリンクを外して、google-play-services_lib プロジェクトに含まれている libs/google-play-services.jar をリンクする
  • Android SDK Tools や Android SDK Build-Tools のバージョンが古い場合、google-play-services_lib のバージョンを 4 系に下げることでリンクできるようになる可能性があります。
  • Invalid ApplicationInfo or MetaData がエラーログ出力された時には、AndroidManifest に meta-data が記載できていないので、application タグ内に meta-data を追加してください。
  • meta-data の value が google-play-services_lib のバージョンと異なっている可能性があります。AndroidManifest の meta-data の value を確認して下さい。

Mobage SDK を利用し、ProGuard を使用する場合

ProGuard を使用する場合は、proguard-project.txt に以下を追記するようにしてください。

 

F.O.X for Mobage を利用し、かつ ProGuard を利用する場合

ProGuard を利用して F.O.X for Mobage を導⼊したアプリケーションを難読化する際に、警告が発生する場合があります。その際には、警告を回避するため以下の設定を追加してください。

apk ファイルをビルドする

編集作業は以上で全て終了です。apk ファイルをビルドする作業に移ります。上メニューより「Build Settings」を選択すると、プラットフォームを選択する画面が表示されます。

プラットフォームの選択

Build Settings ウィンドウの左下の「Platform」から Android を選択し(下図)、その下の「Switch Platform」ボタンを押すと、プログレスバー表示後に Android 用の設定が反映されます。

UnityPlayer の設定変更

また、「Player Settings...」ボタンを押すと、元の Unity IDE ウィンドウの Inspector ビューに UnityPlayer の設定項目が表示されます。各設定項目については Unity 公式のマニュアル等をご確認ください。Mobage Unity SDK で指定すべき必須設定項目は下記となります。

【必須設定項目】Bundle Identifier

「Other Settings」→「Identification」→「Bundle Identifier」をデフォルト値から jp.mbga.a1200XXXX (1200XXXX はアプリ ID)に変更してください。 

 

Bundle Identifier を変更しないと、ビルドに必ず失敗します。

「Other Settings」-> 「Stripping Level」は「Disabled」のままにして下さい。SDK の動作が不安定になります。「Disabled」以外を使用される場合には、「Assets」以下のフォルダに link.xml を追加してください。link.xml の内容は以下になります。

link.xml に独自の設定もしたい場合には、上記設定も追加するようにしてください。

ビルドの実行

画面右下の「Build」ボタンを押し、ビルドを開始すると apk の名前を指定するダイアログが表示されます。apk ファイル名を指定し「Save」ボタンを押すと、ビルドが実行されます。

この apk ファイルが最終的なアプリケーションとなります。実機ですぐに実行確認を行いたい場合は、「Build Settings」ウィンドウ右下の「Build and Run」ボタンを押すと端末上でアプリが実行されます。


更新履歴 

  • 2014/09/03
    • 1.4.7 リリースとサポートバージョン変更に伴い修正
  • 2014/08/26
    • Mobage Unity SDK 1.4.7 リリースに伴い、MobageCallback.AddCallback() メソッドの呼び出し追加。
    • Stripping Level に Disabled 以外を設定したい場合の方法を追記
  • 2014/07/11
    • Google Play Services のインポートについて追記
  • 2014/05/28
    • launchMode を singleTop から singleTask に変更
  • 2013/12/26
    • 新規作成

PREVIOUS

ファイル構成

NEXT

過去バージョンのドキュメント