小编典典

如何使用 gradle 在 APK 文件名中设置 versionName?

all

我正在尝试在 gradle 自动生成的 APK 文件名中设置特定的版本号。

现在 gradle 生成myapp-release.apk,但我希望它看起来像myapp-release-1.0.apk.

我试过重命名看起来很乱的选项。有没有一种简单的方法可以做到这一点?

buildTypes {
    release {
       signingConfig signingConfigs.release
       applicationVariants.each { variant ->
       def file = variant.outputFile
       variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" +    defaultConfig.versionName + ".apk"))
    }
}

我试过上面的代码没有运气。有什么建议么?(使用 gradle 1.6)


阅读 67

收藏
2022-08-02

共1个答案

小编典典

这解决了我的问题:使用applicationVariants.all而不是applicationVariants.each

buildTypes {
      release {
        signingConfig signingConfigs.release
        applicationVariants.all { variant ->
            def file = variant.outputFile
            variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) 
        }
    }       
}

更新:

所以这似乎不适用于 0.14+ 版本的 android studio gradle 插件。

这可以解决问题(来自此问题的参考 ):

android {
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(
                    output.outputFile.parent,
                    output.outputFile.name.replace(".apk", "-${variant.versionName}.apk"))
        }
    }
}
2022-08-02