コンテクスト:
アプリに Google アナリティクスを設定しようとしています。(カスタムが 4 つとbuildTypes
、その他にいくつかありますproductFlavors
)
が ( を生成するときに使用されるパッケージ名)に設定されてBuild Variant
いる を選択すると、正常に動作します。ただし、他のフレーバーには異なる applicationId があります。applicationId
com.my.app.package.name
google-services.json
私は公式開発ガイド設定します。
Build Variants Tab
(パッケージ名が異なる)の別のビルド バリアントを選択した場合に表示されるエラーはapplicationId
次のとおりです。
エラー: タスク ':app:processAllcategoriesDebugfreeGoogleServices' の実行に失敗しました。
パッケージ名 'com.my.app.package.name.debug' に一致するクライアントが見つかりません
エラーメッセージの説明:
上記のエラー メッセージのタスク名はDebugfree
私のカスタムでありbuildType
、Allcategories
私の の 1 つですproductFlavors
。
私はエラーを理解しており、パッケージ名が json を生成するときに使用したものと異なることを知っていますが、それを回避する方法を見つけようとしています。
問題:
現在、 はフォルダーgoogle-services.json
内に存在するためapp
、フレーバー固有のソース セット フォルダーにドロップしても、製品フレーバーごとに分離することはできません。
質問:
byildType
デバッグ用のカスタムは(パッケージ名).debug
にサフィックスを付けます。これを、私のリリースの(つまり、サフィックスなしの)applicationId
で動作させる方法はありますか?google-services.json
applicationId
.debug
- 別々のファイルやタスクを
google-services.json
使用せずに、必要なファイルをapp
フォルダーにコピーする同じファイルに複数の製品フレーバーを構成する方法はありますか。task
この郵便受け1 つのファイルだけを用意したり、Gradle 構成に基づいて適切なファイルを選択するより簡単な方法はありますか? - のフィールド
package_name
にはgoogle-services.json
パッケージ名がありますcom.my.app.package.name
。すべてのビルド バリアントで機能するように複数のパッケージ名を手動で追加できますか? できる場合、その方法を教えてください。ドキュメントに手順が見つかりませんでした。
ベストアンサー1
google-services.jsonのパッケージ名を確認してください。アプリのローカル パッケージ名と同じである必要があります。
例
"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
"package_name": "com.my.app.package.name"
}
この場合、ローカルパッケージ名はcom.my.app.package.nameなので、 google-services.jsonのパッケージ名もローカルパッケージ名に変更しました。