Androidstudio每次生成APK自增版本號、自動命名
阿新 • • 發佈:2019-01-08
前段時間臨近專案測試,需要不斷地釋出新版本,每次都要手動更改版本號、重新命名APK的話會很麻煩。通過網上搜索到的一些資料,加一些自己的活用,現在生成APK比以前方便了很多。
建立version.properties檔案
在Module目錄下用記事本建立一個version.properties檔案,內容為:
VERSION_CODE=9518
修改build.gradle
android {
//自定義debug簽名檔案(與標題內容無關)
signingConfigs {
szridge {
keyAlias '****'
keyPassword '****'
storeFile file('/Users/ChiEr/Documents/AndoirdTool/****.jks')
storePassword '****'
}
}
compileSdkVersion 23
buildToolsVersion '23.0.2'
//如果version.properties檔案可讀則執行操作
def versionPropsFile = file('version.properties')
if (versionPropsFile.canRead()) {
//載入version.properties
Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
//從version.properties根據關鍵字"VERSION_CODE"取Integer
def verCode = versionProps['VERSION_CODE'].toInteger()
//判斷build模式,如果是釋出模式(':app:assembleRelease')則自增版本號,並且寫回version.properties檔案中
def runTasks = gradle.startParameter.taskNames
if (':app:assembleRelease' in runTasks) {
versionProps['VERSION_CODE'] = (++verCode).toString()
versionProps.store(versionPropsFile.newWriter(), null)
}
//使用自增後的版本號為為生成的APK命名
def verName = "0."+versionProps['VERSION_CODE'].toString()
applicationVariants.all { variant ->
if (variant.buildType.name.equals('release')) {
variant.outputs.each { output ->
def appName = 'pm_'
def oldFile = output.outputFile
def releaseApkName
//由於還是測試版本,所以用"0."開頭,每次釋出自增0.001,如有其他需求,可自行修改計算方法及前後綴即可
releaseApkName = appName + "0." + verCode + '.APK'
output.outputFile = new File(oldFile.parent, releaseApkName)
}
}
}
} else {
throw new GradleException("Could not read version.properties!")
}
}
祝各位順利!