FireBaseUnity

FireBaseをUnityへ導入してみよう!Push通知編

0)Firebaseの概要とアカウント及びプロジェクトを作ってみる

FireBaseの概要とプロジェクトの作成方法解説こちらで解説しています!

1)早速FireBaseをUnityに導入してみよう!

公式サイトからSDKダウンロードを選択します。

■今回は試しにCloud Messaging(Push通知機能)をUnityアプリに実装してみます。

2)Unityプロジェクトの作成

今回はテスト用に新規プロジェクトを作成しました。

3)バンドル IDを設定する

File ->Build Settings ->Player Settings -> Other Settings Bundle Identifier

の項目中で任意のBundle Identifierを設定します!

(今回は com.firebase.test としました。)

次の作業で使用するので控えておきます。

4)FireBaseのPackeageのインポート

3)で入手したパッケージ中のFirebaseMessaging.unitypackageをUnity中にインポートします。

別のアプリを追加を選択

・FireBaseコンソールでのiOSのアプリの追加方法

iOSアプリにFirebaseを追加を選択

iOSバンドルIDに5)で取得したBundle IDを入力して「アプリを登録」を選択

「GoogleService-Info.plistをダウンロード」ボタンを押下してダウンロードしたら「次へ」ボタンを押します・

(GoogleService-Info.plistはあとでUnityへインポートします。)

ここの項目はUnityから導入する場合はSkip可能なのでSkipします。

(CocoaPodsによる依存関係のインストールはUnityからプロジェクトビルドを行う時に実行されます。)

ここもUnityからビルドする時には不要なのでスキップします。

一旦、ここも「このステップをスキップ」を選択

ここまで終わるとコンソール上に設定したiOS用のアプリが追加されました。

 

・FireBaseコンソールでのAndroidのアプリの追加方法

AndroidアプリにFirebaseを追加を選択

5)で取得したBundle IDを入力して「アプリを登録」を選択

google-services.jsonをダウンロードしておきます。

ここは、Unity導入の場合はスキップしても大丈夫です。

「次へ」を押下します。

ここも「このステップをスキップ」を選択

Androidのアプリが追加されました!

・google-services.json,GoogleService-Info.plistをプロジェクトに導入

7)でダウンロードしたgoogle-services.jsonとGoogleService-Info.plistをUnityプロジェクトに配置します。

配置場所はAssetsフォルダ内であれば任意の場所で大丈夫っぽいです。

・Unityでの受信設定など

以下のようなスクリプトを書きます。


public class FireBaseTest : MonoBehaviour {
[SerializeField]
Text tokenReceivedText;
[SerializeField]
Text messageReceivedText;

public void Start()
{
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}

public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token)
{
}

public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e)
{
}
}

※TokenReceivedで端末のToken情報を取得できます。

※MessageReceivedでPush通知受信時のイベントを設定できます。

今回は特に使わないので空のメソッドを作成しましたが、必要に応じて任意の実装をして行くのが良いかと思います。

シーン中に先ほどのスクリプトをアタッチしたゲームオブジェクトを配置

・CocoaPodのインストール

iOSでの依存ライブラリの設定用にCocoaPodをインストールします。

gem install cocoapods

ターミナルを開き以下コマンドが通ればインストール完了です。

pod –version

5)iOSの認証証明書周りの設定

・開発用APNs証明書 と 本番用APNs証明書のアップロード

Appleのデベロッパープログラムにアクセス
https://developer.apple.com/account/ios/identifier/bundle/

IdentifiersでAppIDsを選択

対象アプリを選択

各種設定中で PushNotificationsがDevelopment、Distribution共にEnabled になっていることを確認
なってない場合の設定方法はこちら

Application Servicesの下の方にスクロールしてEditボタンを押下します。

PushNotificationsの項目があるのでそこから
Development SSL Certificate
Production SSL Certificateをダウンロード

ダウンロードした
aps_development.cerとaps.cerをダブルクリックしてキーチェーンに保存

Spotlight検索から[キーチェーンアクセス]と入力しキーチェーンアクセスを選択起動

証明書の項目を選択

こちらに先ほどクリックして追加した証明書があるので▼ボタンで開いて「キー」のマークを選択します。

右クリックで出てくるコンテキストメニューから
“キー”を書き出すを選択します。

こちらの、.p12ファイルがAPNs 証明書になります。

・FirebaseConsoleへ行きAPNs証明書を登録します。

FirebaseConsoleへ

プロジェクトの設定を選択

上タブのクラウドメッセージングを選択

開発用APNs証明書と本番用APNs証明書をアップロードする項目があるので先ほど入手したファイルをアップロードします!

~~これでひとまずiOSのPush通知の証明書の登録は完了です!道のり長すぎ・・・・・;; ~~~~~

6)AndroidManifestの設定

・AndroidManifestを編集する

Assets -> Plugins -> Android -> AndroidManifest

を選択

package=${applicationId} となっている箇所に自身のアプリのBundle Identifierを入力

7)実機で確認してみます!

・試しにPush通知を送ってみる。

左メニューからCloudMessagingを選択

最初のメッセージを選択

メッセージ文とラベルを入力します。

ターゲットとするアプリを選択します。

メッセージを送信を押下

コンソールでメッセージが配信されたことが確認できました。

■FireBaseのつまる箇所!(覚書)

FireBaseのPush通知のプラグインを導入した際にハマった箇所の覚書

・BuildModeはGradleにする

自分の環境だとBuildSystemがInternalで正常にBuildできない状態が続いてました。

(PlayServiceResolverが自動生成した.aarやらのAndroidManifestが競合してエラーになる。)