FCMへの移行手順: Cocos2d-x¶
Googleからアナウンスされている通り、GCMは2019/4/11までに廃止が予定されております。すでにReproのプッシュ通知をGCMで実装している場合は、それまでに以下の手順を参照し、FCMでの実装に移行してください。
移行手順¶
Google Cloud PlatformのプロジェクトをFirebase Consoleへ移行する¶
Firebase ConsoleからGCMで利用していたプロジェクトを選択して作成してください:

Google Cloud Platformのプロジェクト番号と、Firebase Consoleの送信者IDが同一であるか確認してください。Google Cloud Platformのプロジェクト番号は Google Cloud Platform > IAMと管理 > 設定 のプロジェクト番号から確認できます:
Firebase Consoleの送信者IDは 設定 > クラウドメッセージング の送信者IDから確認できます:
FCMを設定する¶
- アプリの登録 の手順を参照し、
google-services.json
をダウンロードしてください。 - Firebaseの秘密鍵を生成 と Firebaseの秘密鍵をReproに登録 の手順を参照し、Firebaseの秘密鍵をReproに登録してください。
Repro Cocos2d-x SDKのアップデート¶
Cocos2d-x SDK 更新手順 に従って、Repro Cocos2d-x SDK 3.1.0以上にアップデートしてください。
Firebase SDKを導入する¶
GCMへの依存を削除する¶
dependencies {
- implementation "com.google.android.gms:play-services-gcm:15.0.1"
}
Firebase C++ SDKを導入する¶
Firebaseの公式ドキュメント を参照し、 libfirebase_app.a と libfirebase_messaging.a を導入してください。
AndroidManifest.xmlファイルを編集する¶
io.repro.android.GCMReceiver
を io.repro.ReproReceiver
に修正してください:
<receiver
- android:name="io.repro.android.GCMReceiver"
+ android:name="io.repro.android.ReproReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="YOUR_PACKAGE_NAME" />
</intent-filter>
</receiver>
Registration IDの取得方法を変更する¶
Repro.enablePushNotification
の呼び出しの引数を削除してください。
// AppActivity.java
package org.cocos2dx.cpp;
import android.os.Bundle;
import org.cocos2dx.lib.Cocos2dxActivity;
import io.repro.android.Repro;
public class AppActivity extends Cocos2dxActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ Repro.enablePushNotification();
- Repro.enablePushNotification("SENDER_ID");
}
}
次に、firebase::messaging::Listener
interfaceを実装したクラスの OnTokenReceived メソッドにて、ReproCpp::setPushRegistrationID
を呼び出してください。
#include "ReproCpp.h"
...
class MyFirebaseMessagingListener : public firebase::messaging::Listener {
...
public:
void OnTokenReceived(const char* token) override {
ReproCpp::setPushRegistrationID(token);
}