Android 配置gradle实现VersionCode自增

我是因为构建多渠道包的时候有这个需求,平常工作多个渠道包频繁的打包,总会忘记versioncode提高一下,从而打包出来的apk无法覆盖原先的安装包,这里只介绍了自增VersionCode,网上还有动态设置versionName,有需要也可以看看其他人的实现。以下介绍下配置Gradle自动增加versionCode的值

一、项目的根目录新建一个文件version.properties

Android 配置gradle实现VersionCode自增_第1张图片

二、文件内容写上初始的versioncode

Android 配置gradle实现VersionCode自增_第2张图片



三、主gradle配置

def getVersionCode() {
    def versionFile = file('version.properties')
    if (versionFile.canRead()) {
        def Properties versionProps = new Properties()
        versionProps.load(new FileInputStream(versionFile))
        def versionCode = versionProps['VERSION_CODE'].toInteger()
        def runTasks = gradle.startParameter.taskNames //仅在assembleRelease任务是增加版本号,其他渠道包在此分别配置
        if ('assembleInsectRelease' in runTasks) {
            versionProps['VERSION_CODE'] = (++versionCode).toString()
            versionProps.store(versionFile.newWriter(), null)
        }
        return versionCode
    } else {
        throw new GradleException("Could not find version.properties!")
    }
}
android {
    ....
}


Android 配置gradle实现VersionCode自增_第3张图片


只在release模式下才自增,保证测试的时候versionCode不增加


四、调用

def currentVersionCode = getVersionCode()

    defaultConfig {
        applicationId 'com.chongzzz.texas'
        minSdkVersion 15
        targetSdkVersion 25
        multiDexEnabled true
        versionCode currentVersionCode
        versionName "1.0.1.21"
}

end,新年第一篇文章,加油,


你可能感兴趣的:(AndroidGradle)