我正在尝试在gradle,android studio中设置一个漂亮的小版本脚本,每次我进行构建时版本名称都会增加,而版本代码只会在我发布版本时增加.这可能吗?
我认为可以解决的是检查下面的if语句是否是一个版本.但是我如何检查它是否是一个版本?
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
def versionPropsFile = file('version.properties')
def code
def name
def Properties versionProps
if (versionPropsFile.canRead()) {
versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
code = versionProps['VERSION_CODE'].toInteger() + 1
name = versionProps['VERSION_NAME'].toInteger() + 1
versionProps['VERSION_CODE']=code.toString()
versionProps['VERSION_NAME']=name.toString()
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
versionCode code
versionName "1.2." + name
minSdkVersion 14
targetSdkVersion 19
}
} else {
throw new GradleException("Could not read version.properties!")
}
signingConfigs {
debug {
...
}
releaseKey {
...
}
}
buildTypes {
debug {
debuggable true
packageNameSuffix ".debug"
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.debug
}
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.releaseKey
}
}
lintOptions {
abortOnError false
}
}
我想要像:
if (release) code = versionProps['VERSION_CODE'].toInteger() + 1
else code = versionProps['VERSION_CODE'].toInteger()
有什么建议?
最佳答案
经过几个小时的反复试验后,我想出了一个可以做到这一点的方法.
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
def versionPropsFile = file('version.properties')
if (versionPropsFile.canRead()) {
def Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionPropsFile))
def value = 0
def runTasks = gradle.startParameter.taskNames
if ('assemble' in runTasks || 'assembleRelease' in runTasks || 'aR' in runTasks) {
value = 1;
}
def code = versionProps['VERSION_CODE'].toInteger() + value
def name = versionProps['VERSION_NAME'].toInteger() + 1
versionProps['VERSION_CODE']=code.toString()
versionProps['VERSION_NAME']=name.toString()
versionProps.store(versionPropsFile.newWriter(), null)
defaultConfig {
versionCode code
versionName "1.2." + name
minSdkVersion 14
targetSdkVersion 19
}
} else {
throw new GradleException("Could not read version.properties!")
}
signingConfigs {
debug {
...
}
releaseKey {
...
}
}
buildTypes {
debug {
...
}
release {
...
}
}
lintOptions {
abortOnError false
}
}
所以我正在做的是检查我是否正在执行assebleRelease任务.如果我是,我用1增加versionCode.
希望这有助于其他任何人.
相关文章
- android - 项目构建的增量版本
- Android Studio - Gradle增量构建
- Android Studio 1.1 Gradle 2.2.1 Gradle 2.1版要求当前版本为2.2.1
- 需要Gradle版本1.8.当前版本是1.9-rc-3 - Android Studio
- android - gradle版本和gradle构建工具版本之间的关系
- android-studio - 这个版本的android studio是不兼容的gradle版本used.Try禁用即时运行
- android - 如何实现gradle代码版本自动增量?
- Android Studio Error JUNIT4 !!!预期JUnit版本3.8或更高版本:
转载注明原文:android studio gradle版本增量 - 代码日志