我想为我的调试/发布版本变体保留不同的配置,但显然,google-services.json文件只允许一个。还有其他选择吗?有没有办法保存几个文件?
答案 0 :(得分:18)
我正在使用此解决方法来解决类似构建风格的问题。
特定于风格的 google-service.json 文件存储在 / app / src / {flavor-name} /google-service.json 下。要将其复制到 / app 目录,可以将以下代码添加到 /app/build.gradle 文件中:
gradle.taskGraph.beforeTask { Task task ->
if(task.name ==~ /process.*GoogleServices/) {
android.applicationVariants.all { variant ->
if(task.name ==~ /(?i)process${variant.name}GoogleServices/){
copy {
from "/src/${variant.flavorName}"
into '.'
include 'google-services.json'
}
}
}
}
}
在没有风味的情况下(据我理解你的问题),以下 /app/build.gradle 代码片段在android studio测试项目中完成了这项工作:
gradle.taskGraph.beforeTask { Task task ->
if(task.name ==~ /process.*GoogleServices/) {
android.applicationVariants.all { variant ->
if(task.name ==~ /(?i)process${variant.name}GoogleServices/){
copy {
from '.'
into '.'
rename { String fileName ->
fileName.replace("google-services-${variant.name}.json", 'google-services.json')
}
include "google-services-${variant.name}.json"
}
}
}
}
}
该代码段需要在 / app 目录中添加 google-services-debug.json 和 google-services-release.json 将其复制并重命名为 google-services.json 。
希望这有帮助。
答案 1 :(得分:0)
目前还没有办法定义特定于构建的配置。不过好主意似乎有用了。