[解決済み】google-services.jsonで異なるproductFlavorsを指定する場合
質問
<ブロッククオート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
関連
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み] カスタムアダプタからnotifyDataSetChangeが機能しない
-
[解決済み】apkインストール時のINSTALL_FAILED_NO_MATCHING_ABIS
-
[解決済み】このアクティビティは、すでにウィンドウ装飾によって提供されるアクションバーを持っています。
-
[解決済み】起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み】カメラサービスへの接続に失敗しました。
-
[解決済み】フラグメントMyFragmentがアクティビティにアタッチされない。
-
[解決済み】Android Studioで最新バージョンのgradleを使用する方法
-
[解決済み] APKのインストール中にDELETE_FAILED_INTERNAL_ERRORエラーが発生する。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み】OnFragmentInteractionListenerを実装する方法
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】Bluestackの向きを変更する : ポートレート/ランドスケープモード
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み】Couldn't load memtrack module Logcat Error
-
[解決済み] エラー - Android リソースのリンクに失敗しました (AAPT2 27.0.3 Daemon #0)
-
[解決済み] Gradleのエラーです。イベントディスパッチスレッドからの書き込みアクセスは、Android Studioでのみ許可されます。