1

そのため、単一のコード ベースから一連のアプリケーションを構築し、productFlavors を使用して各アプリケーションをカスタマイズしています。

各フレーバーには、Google アナリティクス用の独自のトラッキング ID が必要になるため、フレーバーごとに新しい google-services.json の生成を開始したところ、Google 開発者コンソールに制限があることがわかりました。

問題は、すべてのフレーバーに同じ json ファイルを使用するにはどうすればよいかということです。(各フレーバーには独自の applicationID があります)

または、私の代替手段は何ですか?Analytics トラッキングを機能させるだけでよいので、最初からこのファイルを使い始めました。

各ファイルを手動で編集してそのpackage_nameとtracking_idを変更することを考えましたが、それが本番環境で実行可能なオプションかどうかはわかりません...

4

2 に答える 2

3

だから私はそれを調べ続け、フレーバーごとに新しいものは本当に必要ないことがわかりました。google-services.json

最初はあまり直感的ではないように見えますが、json ファイルを作成するときは、すべてのフレーバーに同じアプリ名を設定する必要があります。異なるパッケージ名だけです。

例:このステップでは、アプリ名はMyApp、パッケージ名は になりますmy.app.free

ファイルをダウンロードするステップに到達する最後まで進みます。次に、もう一度その手順に進み、同じアプリ名 (この例ではMyApp) を設定しますが、新しいパッケージ名 (例: my.app.pro) を使用します。

新しい をダウンロードするgoogle-services.jsonと、両方のパッケージ用にセットアップされ、異なる分析が使用されます。

于 2016-06-29T17:59:08.900 に答える
1

各フレーバーに独自の applicationID があり、Google アナリティクスに別のトラッキング ID が必要な場合は、フレーバーごとに google-services.json を生成する必要があります。

google-services.json は app フォルダーの下に配置する必要があるため、フレーバーを変更するたびに手動でフレーバーの google-services.json を app フォルダーにコピーする必要があることに注意してください。

これが私のやり方です:

development と production の 2 つのフレーバーがあるとします。次に、開発用の google-services.json を src/development/google-services フォルダー内に配置します。そして、src/production/google-services フォルダー内のプロダクション用。

ここに画像の説明を入力

次に、これらの google-service.json ファイルのコピー タスクを構成する必要があります。このスクリプトを app フォルダーの下の build.gradle に入れます。私にとっては、このスクリプトをandroid {...}.

android {
    ...
}

task switchToDevelopment(type: Copy) {
    description = 'Switches to DEVELOPMENT google-services.json'
    from "src/development/google-services"
    include "google-services.json"
    into "."
}

task switchToProduction(type: Copy) {
    description = 'Switches to PRODUCTION google-services.json'
    from "src/production/google-services"
    include "google-services.json"
    into "."
}

afterEvaluate {
    processDevelopmentDebugGoogleServices.dependsOn switchToDevelopment
    processDevelopmentReleaseGoogleServices.dependsOn switchToDevelopment

    processProductionDebugGoogleServices.dependsOn switchToProduction
    processProductionReleaseGoogleServices.dependsOn switchToProduction
}

このスクリプトは、フレーバーを変更するたびに実行されます。を実行する前に、フレーバーの正しい google-services.json を app フォルダーにコピーしますprocess[FlavorBuildtypes]GoogleServices。それが役に立てば幸い!:)

于 2016-06-26T05:03:54.067 に答える