找不到与包名称匹配的客户端 (Google Analytics) - 多个 productFlavors & buildTypes

新手上路,请多包涵

语境:

我正在尝试为我的应用设置 Google Analytics。 (有4个自定义 buildTypes 和不止一些 productFlavors

It works fine when I select the Build Variant which has the applicationId set to com.my.app.package.name (the package name used when generating the google-services.json ).但是,我的其他口味有不同的 applicationId。

我按照 官方开发指南 进行设置。

Build Variants Tab (具有不同的 applicationId (包名称)中选择任何其他构建变体时,我得到的错误如下:

错误:任务“:app:processAllcategoriesDebugfreeGoogleServices”执行失败。

找不到与包名称“com.my.app.package.name.debug”匹配的客户端

错误信息说明:

In the task name in the error message above Debugfree is my custom buildType and Allcategories is one of my productFlavors .

我理解错误并且知道包名称与我在生成 json 时使用的名称不同,但这就是我想要解决的问题。

问题:

现在, google-services.json 驻留在 app 文件夹中,因此我无法通过将它们放入风味特定的源集文件夹中来将它们分离为每种产品风味。

问题:

  1. 我的自定义 byildType 用于调试后缀 .debugapplicationId (包名)。有没有办法让它与 google-services.json 一起工作,它有我的版本 applicationId (即没有后缀 .debug
  2. 有没有办法在同一个 google-services.json 文件中配置多个产品风格,而无需使用单独的文件和任务将所需文件复制到 app 文件夹。我知道可以使用 task 来完成,如 本文 所述。有没有一种更简单的方法来只拥有一个文件或根据 gradle 配置选择正确的文件?
  3. 我看到 --- 中的 google-services.json package_name 字段具有包名称 com.my.app.package.name 。我可以手动添加多个包名称以适用于所有构建变体吗?如果是,该怎么做?在文档中找不到任何说明。

原文由 Viral Patel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

发现这个:

google-services.json 文件通常放在 app/ 目录中, 但从 2.0.0-alpha3 版本开始,为构建类型添加了插件支持,这将使以下目录结构有效:

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

资源

来源 2

原文由 Viral Patel 发布,翻译遵循 CC BY-SA 3.0 许可协议

我忘记在 Firebase 中添加 SHA certificate fingerprint 。我刚刚重新导入 google-services.json 并且它有效

原文由 Peter 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题