【问题标题】:How to set the APK file name specific to both flavor AND build type?如何设置特定于风味和构建类型的 APK 文件名?
【发布时间】:2015-11-17 09:02:21
【问题描述】:
对于 Android Studio 中的 Gradle:
有很多帖子解释了如何根据构建类型设置 APK 文件名。我不记得我是否找到任何根据口味解释如何做到这一点的方法。没有人解释如何基于两者来做到这一点。
我有 6 种风格,当然还有 2 种构建类型(调试和发布)。我需要为每种风味指定一个不同的 APK 文件名仅用于发布。
所有调试版本都应使用正常的默认 APK 文件名。
所以如果我的口味是 A、B、C、D、E 和 F;那么只有在我构建发布版本时,我才希望 APK 文件为 A.apk、B.apk 等。
【问题讨论】:
标签:
android-studio
android-gradle-plugin
build.gradle
android-productflavors
【解决方案1】:
我已经编写了这段代码,它有助于按照您的要求构建 apk 名称。请注意,它在“android”元素内,作为“buildTypes”和“productFlavors”的兄弟:
android {
...
buildTypes {
release {
...
}
debug {
...
}
}
productFlavors {
A {
...
}
B {
...
}
C {
...
}
}
applicationVariants.all { variant ->
def buildType = variant.variantData.variantConfiguration.buildType.name
if (buildType == android.buildTypes.release.name) {
variant.outputs.each { output ->
def flavour = variant.productFlavors[0].name
def newName = flavour + ".apk"
output.outputFile = new File(output.outputFile.parent, newName)
}
}
}
}
我定义变量:
-
buildType:您在 Build Variant 选项卡中选择的 buildType 的名称。
-
flavor:您在 Build Variant 选项卡中选择的风味名称。
“if”条件检查您正在构建 buildType“release”,因此 apk 名称仅在这种情况下发生变化。