我发现了类似的问题,但没有什么比我想做的更有效。我正在使用Android Studio和gradle进行开发,我的构建文件中有几种口味,每种口味都有一个版本名称。有没有办法在APK文件中包含flavor的版本名称?
答案 0 :(得分:12)
编辑:对于Gradle工具的现代版本,请使用@ ptx的变体(使用output.outputFile
代替variant.outputFile
:
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parentFile,
output.outputFile.name.replace(".apk", "${variant.versionName}.apk"));
}
}
}
从Gradle工具插件版本0.14开始,您应该开始使用以下内容来正确支持多个输出文件(例如APK Splits):
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
variant.outputFile = new File(variant.outputFile.parentFile,
variant.outputFile.name.replace(".apk", "${variant.versionName}.apk"));
}
}
}
对于旧版本:
是的,我们在我们的应用中执行此操作。只需在build.gradle中的android标记中添加以下内容:
android {
applicationVariants.all { variant ->
def oldFile = variant.outputFile
def newPath = oldFile.name.replace(".apk", "${variant.versionName}.apk")
variant.outputFile = new File(oldFile.parentFile, newPath)
}
}
答案 1 :(得分:5)
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parentFile,
output.outputFile.name.replace(".apk", "${variant.versionName}.apk"));
}
}
}
(我写这个作为答案,因为我不具备发表评论的声誉)