我正在尝试在 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)
最佳答案
我只需在一处更改版本名称。代码也很简单。
以下示例将创建名为 MyCompany-MyAppName-1.4.8-debug.apk 或 MyCompany-MyAppName-1.4.8-release.apk 的 apk 文件,具体取决于在所选的构建变体上。
请注意,此解决方案适用于 APK 和 App Bundles (.aab files) 。
另请参阅:How to change the proguard mapping file name in gradle for Android project
#最近 Gradle 插件的解决方案
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.company.app"
minSdkVersion 13
targetSdkVersion 21
versionCode 14 // increment with every release
versionName '1.4.8' // change with every release
setProperty("archivesBaseName", "MyCompany-MyAppName-$versionName")
}
}
上述解决方案已使用以下 Android Gradle 插件版本进行了测试:
- 3.6.4(2020 年 8 月)
- 3.5.2(2019 年 11 月)
- 3.3.0(2019 年 1 月)
- 3.1.0(2018 年 3 月)
- 3.0.1(2017 年 11 月)
- 3.0.0(2017 年 10 月)
- 2.3.2(2017 年 5 月)
- 2.3.1(2017 年 4 月)
- 2.3.0(2017 年 2 月)
- 2.2.3(2016 年 12 月)
- 2.2.2
- 2.2.0(2016 年 9 月)
- 2.1.3(2016 年 8 月)
- 2.1.2
- 2.0.0(2016 年 4 月)
- 1.5.0 (2015/11/12)
- 1.4.0-beta6 (2015/10/05)
- 1.3.1 (2015/08/11)
我会在新版本出来时更新这篇文章。
#Solution 仅在 1.1.3-1.3.0 版本上测试 以下解决方案已使用以下 Android Gradle 插件版本进行测试:
- 1.3.0 (2015/07/30) - 不工作,bug scheduled to be fixed in 1.3.1
- 1.2.3 (2015/07/21)
- 1.2.2 (2015/04/28)
- 1.2.1 (2015/04/27)
- 1.2.0 (2015/04/26)
- 1.2.0-beta1 (2015/03/25)
- 1.1.3 (2015/03/06)
应用 gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.company.app"
minSdkVersion 13
targetSdkVersion 21
versionCode 14 // increment with every release
versionName '1.4.8' // change with every release
archivesBaseName = "MyCompany-MyAppName-$versionName"
}
}
关于android - 如何使用 gradle 在 APK 文件名中设置 versionName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18332474/