小编典典

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

all

语境:

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

当我选择设置为(生成时使用的包名称)时Build Variant,它工作正常。但是,我的其他口味有不同的
applicationId。applicationId``com.my.app.package.name``google-services.json

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

错误时,我会收到任何另一个构建变量Build Variants Tab(具有不同的applicationId(包名称)如下:

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

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

错误信息说明:

上面错误消息中的任务名称Debugfree是我的自定义buildTypeAllcategories是我的productFlavors.

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

问题:

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

问题:

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

阅读 110

收藏
2022-03-10

共1个答案

小编典典

发现这个:

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

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

资源

来源 2

2022-03-10