1. ホーム
  2. android

[解決済み】パッケージ名(Google Analytics)に一致するクライアントが見つからない - 複数のproductFlavorsとbuildTypes

2022-01-18 11:51:52

質問

コンテキスト

自分のアプリにGoogle Analyticsを設定しようとしています。(4つのカスタム buildTypes と、それ以上の数の productFlavors )

を選択すると、正常に動作します。 Build Variant を持つ applicationId に設定します。 com.my.app.package.name (を生成する際に使用されるパッケージ名)。 google-services.json ). しかし、私の他のフレーバーは、異なるアプリケーションIDを持っています。

私は 正式な開発ガイド を使って設定しました。

で他のビルドバリアントを選択すると、エラーが発生します。 Build Variants Tab (これは、異なる applicationId (パッケージ名)は次のようになります。

Error:Execution failed for task ':app:processAllcategoriesDebugfreeGoogleServices' です。

<ブロッククオート

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

エラーメッセージの説明です。

上記エラーメッセージのタスク名の中に Debugfree は私のカスタム buildTypeAllcategories は私の productFlavors .

私はこのエラーを理解し、パッケージ名がjsonを生成するときに使用したものと異なっていることも知っています。

問題あり。

さて、この google-services.json に存在する app フォルダにドロップすることで、各製品フレーバーごとに分離することができないのです。

質問です。

  1. マイ・カスタム byildType サフィックスのデバッグ用 .debugapplicationId (パッケージ名)を指定します。で動作させる方法はありますか? google-services.json これは、私のリリースを持つ applicationId (という接尾語なし .debug )
  2. 複数の製品フレーバーを同じ google-services.json に必要なファイルをコピーするために、別々のファイルやタスクを使用せずに app フォルダーに保存されます。を使ってできることは知っています。 task で述べたように この記事 . 1つのファイルを持つだけ、またはgradleの設定に基づいて正しいファイルを選択する、より簡単な方法はありますか?
  3. 私は package_name のフィールドを google-services.json はパッケージ名 com.my.app.package.name . 複数のパッケージ名を手動で追加して、すべてのビルドバリアントで動作させることはできますか?もし可能なら、その方法を教えてください。ドキュメントには説明がありませんでした。

解決方法は?

こんなのがありました。

<ブロッククオート

google-services.jsonファイルは、一般に、app/ ディレクトリに移動します。 が、プラグインのバージョン 2.0.0-alpha3 でサポートされるようになりました。 ビルドタイプの追加 この場合、次のようなディレクトリが作成されます。 の構造は有効です。

app/src/
    main/google-services.json
    dogfood/google-services.json
    mytype1/google-services.json
    ...

ソース

ソース2