我一直在使用 gradle 为不同公司的 Android 应用程序创建不同的构建变体。
例如我有构建风格:
- 公司1
- 公司2
然后我有构建类型:
- 制作
- 预览
- 发展
所以这将创建 6 个构建变体:
- 公司1生产
- 公司1预览
- 公司1发展
- 公司2生产
- 公司2预览
- 公司发展
所以问题是: 实际上我不需要公司 2 的开发构建类型,我只需要公司 1。
有没有一种方法可以指定只有公司 1 具有开发构建类型?
我的项目中有很多公司,有些构建类型对这些公司没有意义,这让想要构建应用程序的人感到困惑。
最佳答案
为了回答我自己的问题,我在 Gradle Plugin User Guide 上找到了文档
过滤变体
当您添加维度和口味时,您最终可能会得到毫无意义的变体。例如,您可以定义一种使用您的 Web API 的风格和一种使用硬编码假数据的风格,以进行更快的测试。第二种风格只对开发有用,对发布版本没有用。您可以使用 variantFilter 闭包删除此变体,如下所示:
android {
productFlavors {
realData
fakeData
}
variantFilter { variant ->
def names = variant.flavors*.name
if (names.contains("fakeData") && variant.buildType.name == "release") {
variant.ignore = true
}
}
}
使用上面的配置,您的项目将只有三个变体:
真实数据调试
真实数据发布
假数据调试
关于android - Gradle:如何仅为特定口味定义构建类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122232/