fal*_*tto 5 teamcity android gradle android-gradle-plugin hockeyapp
我正在使用TeamCity构建应用程序版本并将其上传到HockeyApp。我想仅在特定口味上启用proguard,并且当构建在teamcity上并在HockeyApp上上传时,可以吗?现在我在gradle文件中定义了变量:
def runProguard = false
Run Code Online (Sandbox Code Playgroud)
并按我的喜好将其设置为false或true,然后在构建类型中设置为:
if (project.hasProperty('teamcity') && runProguard.toBoolean()) {
minifyEnabled true
} else {
minifyEnabled false
}
Run Code Online (Sandbox Code Playgroud)
但是它在teamcity上不起作用,我在HockeyApp上没有proguard的版本。如何解决?这是另一种方法,例如使用启用的proguard定义gradle任务吗?
你应该做这样的事情来实现你想要的:
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'
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以在 teamcity 中设置一些环境变量并检查构建是在 ci 上还是在本地计算机上进行:
if (!System.getenv("CI")) {
//do something on local machine
} else {
// do something on ci server
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2018 次 |
| 最近记录: |