我想用指定的构建类型替换生成的apks的名称:
android {
buildTypes {
def String proguard
release {
minifyEnabled false
zipAlignEnabled true
proguard = "noproguard"
}
releaseProguard {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
zipAlignEnabled true
proguard = "proguard"
}
}
// Replace the file names
android.applicationVariants.all { variant ->
variant.preBuild.doLast {
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
output.outputFile.name.replace(".apk", "-${variant.versionName}-${variant.versionCode}-" + proguard +.apk"))
}
}
}
}
但是,如果我使用"发布"制作已签名的APK,我就没有获得" noproguard"在APK文件名中的字符串,它被最后一个构建类型覆盖:releaseProguard。
预期输出发布: APP-QA-释放1.3.1-noprguard.apk
预期输出 releaseProguard :app-qa-release-1.3.1-proguard.apk
答案 0 :(得分:2)
这并不是你想要的。
您可以使用build.gradle
设置此属性:
android {
//...
defaultConfig {
//...
project.ext.set("archivesBaseName", "XXXX_" + defaultConfig.versionCode);
}
}
分配archivesBaseName
您将获得类似的内容:
xxxx_0.9.6-flavorName-buildType.apk
您可以在flavor块中使用它来指定特定值。
此属性需要gradle-plugin 1.3.1
或更高版本。