Sfi*_*oza 4 android gradle android-studio build.gradle android-gradle-plugin
在Android Studio中,我有build.gradle关于应用程序版本的默认信息:
android {
defaultConfig {
versionCode 24
versionName "0.1 beta"
}
}
Run Code Online (Sandbox Code Playgroud)
如何versionCode在每个项目编译中自动增加?
引自我的书:
由于android:versionCode是一个单调递增的整数,一种自动化方法是在每次构建时简单地增加它.虽然这可能看起来很浪费,但是20亿次构建是很多构建,因此单独的开发人员不太可能耗尽.versionCode
在团队中同步这些值会变得更复杂,但对于个别情况(开发人员,构建服务器等),使用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!")
}
Run Code Online (Sandbox Code Playgroud)
首先,我们尝试打开一个version.properties文件,如果它不存在则失败,要求开发人员手动创建一个启动文件:
VERSION_CODE=1
Run Code Online (Sandbox Code Playgroud)
当然,这个脚本的更强大的实现将处理这种情况并为开发人员提供初始值.
然后,该脚本使用前一节中所示的read-the-custom-properties逻辑[注意:本书未包括在内]来读取现有值...但它将旧值递增1以获取新代码使用.修改后的代码然后在defaultConfig块中应用之前写回属性文件.
在这种情况下,GradleException如果version.properties找不到文件或者无法读取文件,脚本会抛出一个停止构建.
| 归档时间: |
|
| 查看次数: |
2239 次 |
| 最近记录: |