在Android Studio中,我有关于应用程序版本的build.gradle
默认信息:
android {
defaultConfig {
versionCode 24
versionName "0.1 beta"
}
}
如何在每个项目编译中自动增加versionCode
?
答案 0 :(得分:8)
引自my book:
由于android:versionCode
是一个单调递增的整数,
一种自动化方法是在每次构建时简单地增加它。
虽然这可能看起来很浪费,但是20亿次构建是构建的很多,
所以一个独立开发者不太可能用完。同步这样的versionCode
团队中的价值观会变得更复杂,但对于个人而言
case(开发人员,构建服务器等),使用Groovy非常可行。
在
Gradle/HelloVersioning
示例项目使用version.properties
文件作为后台存储
版本信息:
def versionPropsFile = file('version.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
def code = versionProps['VERSION_CODE'].toInteger() + 1
versionProps['VERSION_CODE']=code.toString()
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
versionCode code
versionName "1.1"
minSdkVersion 14
targetSdkVersion 18
}
}
else {
throw new GradleException("Could not read version.properties!")
}
首先,我们尝试打开version.properties
文件,如果没有则失败
存在,要求开发人员手动创建启动文件:
VERSION_CODE=1
当然,这个脚本的更强大的实现将处理这种情况和 为开发者提供初始值。
然后,脚本使用所示的read-the-custom-properties逻辑
在上一节 [注意:本书未包括在内] 来阅读现有的内容
value ...但是它将旧值增加1以获取要使用的新代码。
然后将修改后的代码写回到之前的属性文件中
已应用于defaultConfig
块。
在这种情况下,脚本会抛出GradleException
来停止构建if
无法找到version.properties
文件,否则无法找到
读取。