1. ホーム
  2. アンドロイド

[解決済み】google-services.jsonで異なるproductFlavorsを指定する場合

2022-03-23 02:37:58

質問

<ブロッククオート

更新してください。 GCM は非推奨です。 FCM

Google Developersのページにあるガイドに従って、新しいGoogle Cloud Messagingを実装しています。 こちら

無事に実行し、テストすることができました。しかし、問題は、異なるアプリケーションID/パッケージ名と異なるGoogle Cloud MessagingプロジェクトIDを持つ異なる製品フレーバーがあることです。そのため google-services.json/app/google-services.json フレーバーフォルダではありません。

にする方法はありますか? google-services.json の設定は、多くのフレーバーで異なっていますか?

解決方法は?

Googleは、プレイサービスプラグインのバージョン2.0のフレーバーのサポートが含まれています. このバージョンから gradle plugin com.google.gms:google-services:2.0.0-alpha3

を行うことができます。

ステップ1:gradleに追加

// To auto-generate google map api key of google-services.json
implementation 'com.google.android.gms:play-services-maps:17.0.0'

手順2:AndroidManifest.xmlのapplicationタグに追加します。

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_api_key" />

ステップ3:firebaseから各フレーバーのJSONファイルをダウンロードし、それを追加する

app/src/
    flavor1/google-services.json
    flavor2/google-services.json

プラグインのバージョン 3.0.0 では、これらの場所にある JSON ファイルを検索します(あなたが flavor flavor1 とビルドタイプ debug ):

/app/src/debug/google-services.json
/app/src/debug/flavor1/google-services.json
/app/google-services.json

これはflavorDimensionsを使ってもうまくいきました。1つの次元にfree & paidがあり、もう1つの次元にMock & Prodがあります。また、buildTypesはdebug, release, stagingの3つです。これは、FreeProdフレーバーのプロジェクトでどのように見えるかを示しています。

google-services.jsonをいくつ作成するかはプロジェクトの特性によって異なりますが、Googleプロジェクトには最低でも1つのJSONファイルが必要です。

このプラグインがこれらのJSONファイルを使って何をするのか、より詳しく知りたい方はこちらをご覧ください。 https://github.com/googlesamples/google-services/issues/54#issuecomment-165824720

公式ドキュメントへのリンクです。 https://developers.google.com/android/guides/google-services-plugin

ブログ記事で情報を更新しました。 https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html

また、このプラグインの最新バージョンはこちらでご確認ください。 https://mvnrepository.com/artifact/com.google.gms/google-services?repo=google