使用com.google.gms:google-services:4.3.5时多flavor多构建类型如何配置google-services.json
针对com.google.gms:google-services 4.3.5版本的多环境google-services.json配置方案
核心规则说明
4.x版本的google-services插件完全兼容3.x版本的路径匹配规则,不需要额外修改插件配置,只要将json文件放到对应资源目录下即可自动完成匹配。
配置方法
根据你的实际区分维度选择对应配置方式即可:
1. 仅按productFlavors区分(同flavor下所有buildType共用一个json)
- 把对应flavor的google-services.json放到
app/src/[flavor名称]/目录下即可 - 示例:flavor1的配置文件放
app/src/flavor1/google-services.json,flavor2的配置文件放app/src/flavor2/google-services.json
2. 仅按buildTypes区分(所有flavor共用同一种buildType的json)
- 把对应buildType的google-services.json放到
app/src/[buildType名称]/目录下即可 - 示例:release环境的配置文件放
app/src/release/google-services.json,uat环境放app/src/uat/google-services.json,dev环境放app/src/dev/google-services.json
3. 同时按productFlavor + buildType区分(每个flavor+buildType组合独有配置)
- 先创建对应组合的资源目录,路径格式为
app/src/[flavor名称][buildType首字母大写]/ - 把对应组合的google-services.json放到上述目录中
- 示例:flavor1的release环境配置放
app/src/flavor1Release/google-services.json,flavor2的uat环境配置放app/src/flavor2Uat/google-services.json,以此类推
最终项目结构示例(以全组合区分的场景为例)
app/ ├── src/ │ ├── flavor1/ │ ├── flavor1Release/ │ │ └── google-services.json # flavor1+release独有配置 │ ├── flavor1Uat/ │ │ └── google-services.json # flavor1+uat独有配置 │ ├── flavor1Dev/ │ │ └── google-services.json # flavor1+dev独有配置 │ ├── flavor2/ │ ├── flavor2Release/ │ │ └── google-services.json # flavor2+release独有配置 │ ├── flavor2Uat/ │ │ └── google-services.json # flavor2+uat独有配置 │ ├── flavor2Dev/ │ │ └── google-services.json # flavor2+dev独有配置 │ ├── main/ │ ├── release/ │ ├── uat/ │ └── dev/ └── build.gradle
注意事项
- 如果app根目录下也放置了google-services.json,优先级低于对应flavor、buildType目录下的配置,只有匹配不到对应目录的配置时才会调用根目录的默认配置
- 不需要在build.gradle中添加额外的文件拷贝任务,插件会自动识别对应目录下的json文件
- 每次切换构建变体后建议执行一次
Clean Project再构建,避免旧的配置缓存生效
内容的提问来源于stack exchange,提问作者freeman
相关产品推荐
相关产品推荐

