我正在使用TeamCity构建应用程序的版本并将其上传到HockeyApp。我希望只在特定的风格上启用Pro卫士,当构建是基于团队关系并在HockeyApp上上传时,这有可能吗?现在,我在gradle文件中定义了变量:
def runProguard = false
并以我的风格将其设置为false或true,然后在构建类型中我拥有:
if (project.hasProperty('teamcity') && runProguard.toBoolean()) {
minifyEnabled true
} else {
minifyEnabled false
}
但是它不适用于团队协作,而且我在HockeyApp上也有一个没有程序保护的版本。怎么修呢?这是另一种方法吗,例如,用已启用的proguard来定义gradle任务?
发布于 2016-03-16 11:21:01
你应该做这样的事情来达到你想要的目的:
android {
buildTypes {
debug {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules-debug.pro'
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
mock {
initWith(buildTypes.release)
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
pro {
applicationId = 'com.example.app.pro'
}
free {
applicationId = 'com.example.app.free'
}
}
此外,您还可以在teamcity中设置一些环境变量,并检查构建是发生在ci上还是在本地机器上:
if (!System.getenv("CI")) {
//do something on local machine
} else {
// do something on ci server
}
https://stackoverflow.com/questions/35938152
复制相似问题