SDKの導入: Unity

2018年2月15日現在、Unity SDK では LogBase のプッシュ通知機能(画像つきプッシュ通知を除く)のみサポートしております。

LogPush.unitypackage のインポートとLogPushプレハブの配置

SDKのダウンロードページからSDKをダウンロードして解凍します。

LogPush-Unity-SDK_VERSION(VERSION部分は実際には 1.0.0 のような文字列になります)が解凍されたら、フォルダを開きLogPush.unitypackageがあることを確認してください。 Unityエディターで SDK を導入したいプロジェクトを開いた状態から、メニューの Assets > Import Package > Custom Package… からLogPush.unitypackageを選択すると、ライブラリが上書インポートされます。

ライブラリを上書きインポートするとAssets/LogPush/Prefabsに LogPush プレハブがインポートされますので、LogPush プレハブを各シーンに配置します。

LogPushController.mm の編集【iOS】

UnityエディターのAssets/Plugins/iOS/LogPushController.mmを開きます。 中にあるapplication:didFinishLaunchingWithOptions:YOUR_APPLICATION_IDYOUR_SECRET_KEYを、 LogBase から発行された アプリID と シークレットキー に置き換えてください。

本番環境と開発環境の切り替え【iOS】

Assets/Plugins/iOS/LogPushController.mmDEBUG定数をtrueにすると開発環境に、falseにすると本番環境へと切り替わります。 開発環境に設定されている場合はデバッグ情報を Xcode のコンソールで確認する事が可能です。

Xcodeプロジェクトを出力【iOS】

Xcode プロジェクトを出力するために、Unity でビルドします。

Capabilities に Push Notifications を追加【iOS】

出力された Xcode プロジェクト上の Capabilities タブにある Push Notifications のスイッチをONにします。

Add the “Push Notifications” entitlements to your App IDというメッセージが表示された場合

Add the “Push Notifications” entitlements to your App ID というメッセージが表示された場合、その下にある Fix Issue ボタンをクリックします。

AdSupport.framework を追加【iOS】【Unity 5.3 以前】

Unity 5.4 以降ではこの処理は自動的に実行されるため必要ありません。

Xcode プロジェクトにAdSupport.frameworkを追加します。General から Linked Frameworks and Libraries を表示し、下部の「+」ボタンをクリックしAdSupport.frameworkを追加します。

Player Settings の設定【Android】

SDK version 2.1.0以降では Android SDK 4.0.3(Level15)以上に対応しています。

Unityエディターの Build SettingsでAndroid を選択し、 Player Settings をクリックして Inspector を開いてください。 Inspector 内にある Settings for Android > Idntification > Minimum API Level を「Android4.0.3 level15」以上に設定して下さい。

送信者IDの取得【Android】

Firebase からプロジェクトを選択し、プロジェクトの設定を選択します。

クラウドメッセージングを選択し、表示された送信者IDを記録します。

Google Play Services Resolver の実行【Android】

メニューから File > Build Settings を選び、Platform から Android を選択し、 Switch Platform をクリックします。メニューから Assets > Google Play Services > Resolve Client Jars を実行します。

実行に先立ち Android SDK の Google Repository と Android Support Repository をインストールしておく必要があります。

Bundle Identifierの取得【Android】

Unityエディターの Build Settings でAndroidを選択し、 Player Settings をクリックして Inspector を開いてください。 Inspector 内にある Settings for Android > Idntification > Bundle Identifier の パッケージ名 をメモします。

Assets/Plugins/Android/AndroidManifest.xml の編集【Android】

UnityエディターのAssets/Plugins/Android/AndroidManifest.xmlをダブルクリックして開きます。

AndroidManifest.xml が存在しない場合

Assets/Plugins/Android/AndroidManifest_sample.xml のファイル名を変更し利用することが可能です。 net.logbk.logpush.exampleをメモしたパッケージ名で、YOUR_APPLICATION_IDYOUR_SECRET_KEYはアプリID、シークレットキーで、 SENDER_IDはメモした送信者IDで置き換えてください。


<manifest>タグの直下に次の行を追加します。YOUR_PACKAGE_NAMEをメモしたパッケージ名で置き換えてください。

<permission android:name="${YOUR_PACKAGE_NAME}.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="${YOUR_PACKAGE_NAME}.permission.C2D_MESSAGE" />

<application>タグの直下に次の行を追加します。 以下のコードに含まれるYOUR_PACKAGE_NAMEはメモしたパッケージ名で、YOUR_APPLICATION_IDYOUR_SECRET_KEYはアプリID、シークレットキーで、SENDER_IDはメモした送信者IDで置き換えてください。

<receiver
  android:name="net.p_lucky.logpush.GCMReceiver"
  android:exported="true"
  android:permission="com.google.android.c2dm.permission.SEND" >
  <intent-filter>
  <action android:name="com.google.android.c2dm.intent.RECEIVE" />
  <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
  <category android:name="${YOUR_PACKAGE_NAME}" />
  </intent-filter>
</receiver>      
<meta-data android:name="net.logbk.logpush.debug" android:value="false" />
<meta-data android:name="net.logbk.logpush.appId" android:value="id:${YOUR_APPLICATION_ID}" />
<meta-data android:name="net.logbk.logpush.secretKey" android:value="${YOUR_SECRET_KEY}" />
<meta-data android:name="senderId" android:value="id:${SENDER_ID}" />

<activity android:name="com.unity3d.player.UnityPlayerNativeActivity">を下記のように変更します。

<activity android:name="net.logbk.logpushlib.UnityActivity">

本番環境と開発環境の切り替え【Android】

Assets/Plugins/Android/AndroidManifest.xmlにあるnet.logbk.logpush.debugvaluetrueにすると開発環境に、 falseにすると本番環境へと切り替わります。 開発環境に設定されている場合はデバッグ情報をDDMSで確認する事が可能です。

カスタムフィールドの取得【オプション】

LogBase ではプッシュ通知の配信時、カスタムフィールドを用いてプッシュ通知に任意の情報を追加することができます。 カスタムフィールドは json 形式で取得されます。 取得タイミングによっては初期化が完了しておりませんので、その際は初期化が完了した際に呼ばれるイベントを設定して取得します。

if (LogPush.IsInitCustomeField) {
  // カスタムフィールドの初期化が完了しているので、取得
  Debug.Log(LogPush.CustomeField);
} else {
  // カスタムフィールドの初期化が完了していないので、イベント設定
  LogPush.OnCustomField += json => {
  Debug.Log (json);
};