如何设置特定于flavor和构建类型的APK文件名?

时间:2015-08-24 02:50:32

标签: android-studio android-gradle build.gradle android-productflavors

对于Android Studio中的Gradle: 有很多帖子解释了如何根据构建类型设置APK文件名。我不记得我是否根据口味找到了解释如何做到这一点。没有人解释如何在两者基础上做到这一点。

我有6种口味,当然还有2种构建类型(调试和发布)。我需要为每种风格指定仅用于发布的不同APK文件名。

正常的默认APK文件名应该用于所有调试版本。

所以,如果我的口味是A,B,C,D,E和F;那么只有当我构建一个发布版本时,我是否希望APK文件为A.apk,B.apk等。

1 个答案:

答案 0 :(得分: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:您在“构建变体”标签中选择的buildType的名称。
  • flavor:您在“构建变体”标签中选择的风味名称。

" if"条件检查您正在构建buildType" release",因此在这种情况下,apk名称只会更改。