小编典典

google-services.json 用于不同的 productFlavors

all

更新:不推荐使用 GCM,请使用FCM

我正在按照此处的 Google Developers 页面中的指南实施新的 Google Cloud
Messaging

我已经成功运行并测试了它。但我现在的问题是我有不同的产品风格,具有不同的 applicationId/packageName 和不同的 Google
Cloud Messaging Project Id。google-services.json必须放在非/app/google- services.json风味文件夹中。

有什么方法可以使google-services.json配置因多种口味而异吗?


阅读 184

收藏
2022-03-10

共1个答案

小编典典

Google 在播放服务插件的 2.0 版中包含了对风味的支持。由于这个版本的gradle plugin com.google.gms:google- services:2.0.0-alpha3

你可以这样做

第 1 步:添加到 gradle

// To auto-generate google map api key of google-services.json
implementation 'com.google.android.gms:play-services-maps:17.0.0'

第二步:在应用标签中添加AndroidManifest.xml

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_api_key" />

第 3 步:从 firebase 下载每个风味 JSON 文件并添加它

app/src/
    flavor1/google-services.json
    flavor2/google-services.json

3.0.0 版插件在这些位置搜索 JSON 文件(考虑到您有flavorflavor1 和 build type debug):

/app/src/debug/google-services.json
/app/src/debug/flavor1/google-services.json
/app/google-services.json

即使使用flavorDimensions,这也对我有用。我在一个维度有免费和付费,在另一个维度有 Mock & Prod。我也有 3 种
buildType:调试、发布和登台。这是它在我的 FreeProd 风格项目中的外观:

在此处输入图像描述

有多少 google-services.json 文件取决于您的项目的特点,但每个 Google 项目至少需要一个 JSON 文件。

如果您想了解有关此插件对这些 JSON 文件的作用的更多详细信息,请访问: https
://github.com/googlesamples/google-
services/issues/54#issuecomment-165824720

官方文档链接: https ://developers.google.com/android/guides/google-services-
plugin

更新信息的博客文章:https ://firebase.googleblog.com/2016/08/organizing-your-firebase-
enabled-android-app-
builds.html

并去这里检查这个插件的最新版本:https ://mvnrepository.com/artifact/com.google.gms/google-
services?repo=google

2022-03-10