Android studio 如何设置特定于flavor和build类型的APK文件名?

Android studio 如何设置特定于flavor和build类型的APK文件名?,android-studio,android-gradle-plugin,build.gradle,android-productflavors,Android Studio,Android Gradle Plugin,Build.gradle,Android Productflavors,对于Android Studio中的Gradle: 有许多帖子解释了如何根据构建类型设置APK文件名。我不记得我是否找到任何解释如何做的基础上的味道。没有人根据这两个方面解释如何做到这一点 我有6种风格,当然还有2种构建类型(调试和发布)。我只需要为每个版本指定不同的APK文件名 所有调试版本都应使用常规默认APK文件名 如果我的口味是A,B,C,D,E和F;只有在构建发布版本时,我才希望APK文件为a.APK、B.APK等。我已经编写了这段代码,它有助于按照您的要求构建APK名称。请注意,它位

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

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

所有调试版本都应使用常规默认APK文件名


如果我的口味是A,B,C,D,E和F;只有在构建发布版本时,我才希望APK文件为a.APK、B.APK等。

我已经编写了这段代码,它有助于按照您的要求构建APK名称。请注意,它位于“android”元素中,作为“buildTypes”和“productFlavors”的兄弟元素:

我定义变量:

  • 构建类型:在“构建变量”选项卡中选择的构建类型的名称
  • flavor:在构建变体选项卡中选择的风味名称
“if”条件检查您是否正在构建buildType“release”,因此在这种情况下apk名称只会更改

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)
            }
        }
    }
}