【问题标题】: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 名称仅在这种情况下发生变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多