您的位置:首页 > 移动开发 > Android开发

Androidstudio每次生成APK自增版本号、自动命名

2015-12-16 16:52 471 查看
前段时间临近项目测试,需要不断地发布新版本,每次都要手动更改版本号、重新命名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!")
}
}


祝各位顺利!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: