いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity+Firebaseで簡単・無料のiOSプッシュ通知 〜(2) Firebaseの設定

    
            
  • 1
  •         
  • 2
  •         
  • 3
  •     

次にFirebaseの設定を行います。

Firebaseプロジェクトの作成

Firebaseコンソールにログインし、新規プロジェクトを作成します。

f:id:sugar_affordance:20170120201720p:plain

下のダイアログが出るので

f:id:sugar_affordance:20170120201745p:plain

プロジェクト名を入れ、国/地域 は日本にしておきましょう。

画像に書いてあるように、作成できるプロジェクト数には限りがあるので注意。

アプリを追加

プロジェクトを作成できたら、トップ画面からiOSアプリを追加します。

f:id:sugar_affordance:20170120201836p:plain

またダイアログが出るので、

f:id:sugar_affordance:20170120201901p:plain

最低限バンドルIDのみ入力して次へ。

すると、GoogleService-Info.plistというファイルダウンロードされます。

あとで使うのでとっておきましょう。

ここまででダイアログは閉じてしまってOKです。

Firebaseコンソールに証明書をアップロード

プロジェクトのメニューからクラウドメッセージングと進み、

f:id:sugar_affordance:20170120201932p:plain

スクロールして下までいきます。

f:id:sugar_affordance:20170120201954p:plain

開発用APNs証明書の「証明書をアップロード」ボタンを押し、キーチェーンから書き出した.p12ファイルをアップロードします。

Unityの設定

次はUnityの設定です。

UnityにSDKを導入する

下のページからDOWNLOAD THE SDKボタンでSDKをダウンロードします。

Adding Firebase to your Unity Project  |  Firebase

解凍したファイルからFirebaseMessaging.unitypackageをUnityプロジェクトにインポートします。

さらに、FirebaseコンソールからダウンロードしたGoogleService-Info.plist をプロジェクトにドラッグしてインポートしましょう。
ファイルを置く場所はプロジェクト内ならどこでもかまいません。

CocoaPodsをインストール

iOSライブラリ管理ツールにCocoaPodsというものがありますが、これもインストールします。どうやらUnityからXcodeプロジェクト書き出し後に実行されるようです。

https://cocoapods.org/

Homebrewとかrbenvを使うとうまくいかなかったので、Macプリインのrubyをアップデートしつつインストールしました。

・参考
【Ruby】Gem本体のアップデートについて - TASK NOTES

MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法

Firebaseのコードを実装

いよいよコードを実装します。

下の公式サイトの方法にならっていくだけです。

Firebaseのクラスを使用するため、NotificationServicesクラスは使用しません。

public class FirebaseTest : MonoBehaviour {

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

    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
        UnityEngine.Debug.Log("Received Registration Token: " + token.Token);
    }

    public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
        UnityEngine.Debug.Log("Received a new message from: " + e.Message.From);
    }
}

この二つのハンドラを登録することで、自動的にFirebaseの初期設定が行われます。

Firebase.Messaging.FirebaseMessaging.TokenReceived で受け取るtokenという文字列は、実行したデバイスを表す一意な値です。
Firebaseのコンソールから特定の端末にのみ通知を送りたい場合に使用します。

FirebaseMessaging.MessageReceivedでは、アプリ実行中に通知をうけとった場合の動作を記述します。

ビルド

ここまでできたらXcodeプロジェクトに書き出しましょう。

    
            
  • 1
  •         
  • 2
  •         
  • 3
  •     

“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。