I'm trying to auto increment versionCode in my build.gradle
. But it doesn't work. Then I've tried to simply overwrite versionCode, e.g. versionCode 20
and still it's not updated. Checked both original AndroidManifest.xml
and packaged in apk.
Full build.gradle
:
import java.util.regex.Pattern
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5+'
}
}
repositories {
mavenCentral()
mavenLocal()
maven {
url "http://mente.github.io/facebook-api-android-aar"
}
}
apply plugin: 'android'
dependencies {
//provided by android gradle plugin
compile 'com.android.support:support-v4:+'
compile 'com.google.android.gms:play-services:3.+'
compile 'com.facebook:facebook-android-sdk:3.0.2@aar'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.+'
compile 'org.twitter4j:twitter4j-core:3.+'
compile fileTree(dir: 'libs', include: '*.jar')
}
def getVersionCode() {
println "Hello getVersionCode"
def manifestFile = file("AndroidManifest.xml")
def pattern = Pattern.compile("versionCode=\"(\\d+)\"")
def manifestText = manifestFile.getText()
def matcher = pattern.matcher(manifestText)
matcher.find()
def version = ++Integer.parseInt(matcher.group(1))
println sprintf("Returning version %d", version)
return version
}
android {
defaultConfig {
versionCode getVersionCode()
}
signingConfigs {
release {
...
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
buildToolsVersion "17.0"
compileSdkVersion 17
}
task wrapper(type: Wrapper) {
gradleVersion = '1.6'
}
Also my debug lines from getVersionCode function are not printed out. Looks like defaultConfig
section is ignored. I know there's working example here on SO. But still wondering why built-in android.defaultConfig.versionCode
doesn't work?