【发布时间】:2016-11-18 11:18:12
【问题描述】:
我需要为不同的构建环境启用 Fabric,并且在我们的例子中还要考虑 apk 是使用 Android Studio 还是 CI 服务器 (jenkins) 构建的。 我正在考虑使用的方法是:
defaultConfig {
applicationId "com.pack.proj"
minSdkVersion 19
targetSdkVersion 23
versionCode 12
ext.buildNumber = System.getenv("BUILD_NUMBER") ?: "dev"
versionName "1.2.$buildNumber"
signingConfig signingConfigs.inspection
}
productFlavors {
dev1 {
resValue 'string', 'app_name', 'App Name'
resValue 'string', 'base_url', 'http://dev1.server.in/'
buildConfigField 'boolean', 'USE_FABRIC', 'true'
}
dev2 {
resValue 'string', 'app_name', 'App Name'
resValue 'string', 'base_url', 'http://dev2.server.in/'
// ********HOW DO I CALL THE TASK 'enableFabric' FROM HERE*********
}
}
task enableFabric{
if(versionName.contains('dev'))
buildConfigField 'boolean', 'USE_FABRIC', 'false'
else
buildConfigField 'boolean', 'USE_FABRIC', 'true'
}
现在我的问题是
- 如何从 dev1 和 dev2 产品中调用任务 enableFabric 口味?
- 当我运行 gradle 脚本时,我收到 versionName is unrecognized property in task enableFabric 的错误?
-
也
buildConfigField 'boolean', 'USE_FABRIC', 'true'在 defaultConfig 中使用时对我不起作用。当我使用如果(BuildConfig.USE_FABRIC == true){ // 做一点事 }
在 Java 代码中。
【问题讨论】:
标签: android android-studio jenkins gradle