使用Google Services需要使用这个Gradle插件:
apply plugin: 'com.google.gms.google-services'
Gradle 论坛上的这个帖子让我得出这样的结论:你无法有选择地启用或禁用插件,这意味着这不是一个选项。我已经尝试了旧线程提供的许多解决方案,涉及围绕
apply plugin
语句的条件,但现在都不起作用。
插件本身由 Google 生成的
google-services.json
配置,并放置在项目目录中。我知道您可以通过拥有多个google-services.json
文件来为每种风格进行不同的配置,但是我们打算如何构建我们明确希望不使用Google服务的风格(例如,针对那些没有安装 Play 服务)?空白文件或虚拟 JSON 文件不起作用,因为插件将拒绝接受它。
所以我能想到的唯一解决方案是每次我想测试/构建我的风格时手动禁用插件(注释掉该行)。当然必须有更好的方法来控制插件的工作方式吗?
我终于得到了一个可以工作的版本。使用 gradle 4.6、构建工具 3.0.1、google-services 插件 3.1.1 进行测试
应用插件:'com.google.gms.google-services' android.applicationVariants.all { 变体 -> if (variant.name == 'someVariantNameYouDontwanFirebase') { project.tasks.getByName('process' +variant.name.capitalize() + 'GoogleServices').enabled = false } }
在更现代的设置中,您还可以在策略丢失时设置策略。
productFlavors {
create("dev") {
dimension = "version"
applicationIdSuffix = ".dev"
googleServices.missingGoogleServicesStrategy = GoogleServicesPlugin.MissingGoogleServicesStrategy.WARN
}
}