私は複数のフレーバーを使用して Android プロジェクトに取り組んでおり、もちろんそれぞれにデバッグ ビルドとリリース ビルドがあります。セットアップでは、API エンドポイントがステージングを指し、リリースがライブ サーバーを指します。Google プレイ サービス プラグインを使用しています。グレード用
classpath 'com.google.gms:google-services:2.1.0-alpha5'
私が直面している問題は google-services.json にあります。これは、デバッグ用とリリース用 (各フレーバーごと) を持つことができないためです。私たちのプロジェクトでは、フレーバーは国を表します (ブランド名と言語が異なります)。
ビルドタイプごとにフレーバーごとに異なる GCM センダーを使用したいのはなぜですか? どちらのアプリでも、ユーザーはトピックにサブスクライブし、個々のユーザーではなくトピックにプッシュ メッセージを送信するため、参照用に GCM トークンを収集しますが、送信は常にトピック ベースであるため、Debug とリリースすると、問題が発生します。
そのため、たとえばトピック「X」に送信することによるテスト中の事故は、ライブ ユーザーとステージング (デバッグ) にメッセージを配信することになります。もう 1 つのことは、すべてのフレーバーが同じ送信者を持つわけではないため、リリース タイプごとにそれを保持したくないということです。
したがって、理想的なソリューションは次のようになります。
-app/src/flavor1Debug/google-services.json (with project_number:"1000001")
-app/src/flavor1Release/google-services.json (with project_number:"1000002")
-app/src/flavor2Debug/google-services.json (with project_number:"9000001")
-app/src/flavor2Release/google-services.json (with project_number:"9000002")
しかし、Google-Playサービスは
- app/google-services.json
- app/src/flavor1/google-services.json
- app/src/flavor2/google-services.json
- app/src/debug/google-services.json
- app/src/release/google-services.json
各「フレーバー + ビルド」の送信者 ID を分離する他の方法はありますか?