パッケージ名に一致するクライアントが見つかりません (Google Analytics) - 複数の productFlavors と buildTypes 質問する

パッケージ名に一致するクライアントが見つかりません (Google Analytics) - 複数の productFlavors と buildTypes 質問する

コンテクスト:

アプリに Google アナリティクスを設定しようとしています。(カスタムが 4 つとbuildTypes、その他にいくつかありますproductFlavors)

が ( を生成するときに使用されるパッケージ名)に設定されてBuild Variantいる を選択すると、正常に動作します。ただし、他のフレーバーには異なる applicationId があります。applicationIdcom.my.app.package.namegoogle-services.json

私は公式開発ガイド設定します。

Build Variants Tab(パッケージ名が異なる)の別のビルド バリアントを選択した場合に表示されるエラーはapplicationId次のとおりです。

エラー: タスク ':app:processAllcategoriesDebugfreeGoogleServices' の実行に失敗しました。

パッケージ名 'com.my.app.package.name.debug' に一致するクライアントが見つかりません

エラーメッセージの説明:

上記のエラー メッセージのタスク名はDebugfree私のカスタムでありbuildTypeAllcategories私の の 1 つですproductFlavors

私はエラーを理解しており、パッケージ名が json を生成するときに使用したものと異なることを知っていますが、それを回避する方法を見つけようとしています。

問題:

現在、 はフォルダーgoogle-services.json内に存在するためapp、フレーバー固有のソース セット フォルダーにドロップしても、製品フレーバーごとに分離することはできません。

質問:

  1. byildTypeデバッグ用のカスタムは(パッケージ名).debugにサフィックスを付けます。これを、私のリリースの(つまり、サフィックスなしの)applicationIdで動作させる方法はありますか?google-services.jsonapplicationId.debug
  2. 別々のファイルやタスクをgoogle-services.json使用せずに、必要なファイルをappフォルダーにコピーする同じファイルに複数の製品フレーバーを構成する方法はありますか。taskこの郵便受け1 つのファイルだけを用意したり、Gradle 構成に基づいて適切なファイルを選択するより簡単な方法はありますか?
  3. のフィールド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のパッケージ名もローカルパッケージ名に変更しました。

おすすめ記事