1. 程式人生 > >Androidstudio每次生成APK自增版本號、自動命名

Androidstudio每次生成APK自增版本號、自動命名

前段時間臨近專案測試,需要不斷地釋出新版本,每次都要手動更改版本號、重新命名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!") } }

祝各位順利!