Unity IDE 上で apk ファイルをビルドする(1.4.7未満)

このページは最新の Mobage Unity SDK 1.4.6.6 を使用しています。Mobage Unity SDK 1.4.7 以降の場合は、 Unity IDE 上で apk ファイルをビルドするト をご参考ください。 

このページでは、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 が配置されているパス名にマルチバイト文字が使用されていると、インポートに失敗しますのでご注意下さい。

HelloMobage.unity を開く

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

Project ビューで Plugins/HelloMobage.unity (Unity のアイコンのファイル) をダブルクリックするとサンプルアセットが反映されます。Hierarchy ビューに、MobageCallback というオブジェクトが追加されます。
(下画面では Layout を Wide に指定しています。)


 

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

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

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

Mobage Unity SDK の機能を使用する為に下記を参考に処理を記述してください。

MobageCallback.AddCallback() の呼び出し

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

MobagePlatform#initialization() の呼び出し

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

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

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

ログインリスナーの登録

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

 

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

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

HelloMobage.cs では実装例として private void getCurrentUser() を定義しています。

 

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

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 を導⼊したアプリケーションを難読化する際に、警告が発生する場合があります。その際には、警告を回避するため以下の設定を追加してください。

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

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

 

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/9/4
    • 新規作成

PREVIOUS

Unity IDE 上で apk ファイルをビルドする (1.4.3 以降)

NEXT

Mobage Unity SDK (iOS 版)