Growthbeat 2.0.9へバージョンアップのFCM対応方法について
GoogleによりGCMの廃止に伴い、Growthbeat 2.0.9以降はFirebase SDKの導入が必須となりました。
AndroidまたUnityのGrowthbeat SDK 2.0.8以下をお使いの方は、Firebase SDKに必要な導入項目を対応してください。
対応項目は、下記となります。
- google-service.jsonのインポート
- Gradleをfirebaseに変更
- XMLの変更
google-services.jsonのインポート
※まだFirebaseプロジェクトに移行していない場合は、下記ケースを読み、Firebaseにプロジェクトを移行してください。
https://faq.growthbeat.com/article/23-gcm-api
Firebaseからgoogle-services.jsonをダウンロード
firebaseプロジェクトの設定画面 (歯車マーク)→プロジェクトの設定をクリックし、その画面内のAndroid設定のgoogle-services.jsonという部分をクリックし、ダウンロードしてください。
アプリプロジェクトへインポート
アプリプロジェクトのルートフォルダへ、google-services.jsonをインポートしてください。
google-services.jsonの設定は以上となります。
プロジェクトルートGradleにrepository追加
dependencies {
classpath 'com.google.gms:google-services:4.0.1'
}
GradleをFirebaseに変更
GooglePlayServicesのライブラリからFirebase SDKへ変更する必要がございます。 下記のように、bulid.gradleを変更してください。
※GooglePlayServicesバージョンや、Firebase SDKバージョンはご自身のプロジェクトによって異なります。
Growthbeat SDK 2.0.8以下 (GooglePlayServicesライブラリ)
dependencies {
implementation 'com.google.android.gms:play-services-gcm:11.2.+'
implementation 'com.google.android.gms:play-services-ads:11.2.+'
}
Growthbeat SDK 2.0.9以上(Firebase SDK)
dependencies {
implementation 'com.google.firebase:firebase-messaging:15.0.+'
}
Gradleファイルの変更は以上となります。
AndroidManifest.xmlの変更
プッシュ通知受け取り方法が大きく変わっているので、AndroidManifest.xmlの変更ができていないと、プッシュ通知を受け取れない状態となります。 こちらも下記に従って変更してください。
Growthbeat SDK 2.0.8以下
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE" />
<permission
android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<application>
<!-- ... -->
<activity
android:name="com.growthpush.view.AlertActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Translucent" />
<service
android:name="com.growthpush.TokenRefreshService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service android:name="com.growthpush.RegistrationIntentService"/>
<service
android:name="com.growthpush.ReceiverService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
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>
</application>
Growthbeat SDK 2.0.9以上
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<application>
<!-- ... -->
<activity
android:name="com.growthpush.view.AlertActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Translucent" />
<service android:name="com.growthpush.TokenRefreshService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name="com.growthpush.ReceiverService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>