我希望为我的调试/发布版本保留不同的配置,但是显然,google-services.json文件只允许一个。有没有其他选择?是否有办法保留多个文件?
我希望为我的调试/发布版本保留不同的配置,但是显然,google-services.json文件只允许一个。有没有其他选择?是否有办法保留多个文件?
我正在使用这种解决方法来解决与构建版本相关的类似问题。
特定于版本的google-service.json文件存储在/app/src/{flavour-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代码片段可以在安卓工作室测试项目中发挥作用:
结果翻译为:
在没有口味的情况下(就我理解的问题而言),以下的/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。from "src/${variant.flavorName}"
中删除第一个 /
,但除此之外,@MartinS你的解决方案真是太棒了。 - Richard PooleFile google-services.json is missing from module root folder. The Google Services Plugin cannot function without it
。 - Erezafrom "/src/${variant.flavorName}"
变成 from "src/${variant.flavorName}"
。 - Ereza目前还没有办法定义特定构建配置。不过这是个好主意,看起来很有用。