gpt4 book ai didi

android - 使用gradle更新Android应用程序版本(存储在build.gradle中)

转载 作者:行者123 更新时间:2023-12-03 06:17:24 26 4
gpt4 key购买 nike

在gradle中执行某些任务时,是否可以更新Android或库版本versionCodeversionName? versionCode / Name放在我的android / build.gradle中

我正在寻找一个完整的gradle脚本,而不是shell脚本。

它与How to autoincrement versionCode in Android Gradle不同,因为versionCode和versioName存储在build.gradle中而不是 list 中

最佳答案

在您要更新的build.gradle中,我更改了脚本以编辑当前的build.gradle并递增versionCode和versionName。

将此任务添加到您的gradle中:

task incrementVersionCode << {
println("Incrementing Version Code...")
def manifestFile = file("build.gradle")
def patternVersionCode = Pattern.compile("versionCode (\\d+)")
def manifestText = manifestFile.getText()
def matcherVersionCode = patternVersionCode.matcher(manifestText)
matcherVersionCode.find()
def mVersionCode = Integer.parseInt(matcherVersionCode.group(1))
def mNextVersionCode = mVersionCode + 1
def manifestContent = matcherVersionCode.replaceAll("versionCode " + mNextVersionCode)
println("> Set versionCode(" + mVersionCode + ") to " + mNextVersionCode);
manifestFile.write(manifestContent)
}

task incrementVersionName << {
println("Incrementing Version Name...")
def manifestFile = file("build.gradle")
def patternVersionNumber = Pattern.compile("versionName \"(\\d+)\\.(\\d+)\\.(\\d+)\"")
def manifestText = manifestFile.getText()
def matcherVersionNumber = patternVersionNumber.matcher(manifestText)
matcherVersionNumber.find()
def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))
def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))
def pointVersion = Integer.parseInt(matcherVersionNumber.group(3))
def mVersionName = majorVersion + "." + minorVersion + "." + pointVersion
def mNextVersionName = majorVersion + "." + minorVersion + "." + (pointVersion + 1)
def manifestContent = matcherVersionNumber.replaceAll("versionName \"" + mNextVersionName + "\"")
println("> Set versionName(" + mVersionName + ") to " + mNextVersionName);
manifestFile.write(manifestContent)
}

用法

如果要在运行 ./gradlew bintrayUpload时更新版本(例如mut,它可能是您想要的任务),请添加以下代码:
bintrayUpload.dependsOn incrementVersionCode
bintrayUpload.dependsOn incrementVersionName

关于android - 使用gradle更新Android应用程序版本(存储在build.gradle中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29412828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com