发布版本的不同版本代码
Different version code for release version
我有一个多模块 Android 项目,我的版本代码是 010007 但是当我 build 使用混淆器发布并缩小资源时,我得到版本代码为 4103 的 APK(可见于outputs.json proguard 生成的文件)。当我的版本代码是 010006 在 outputs.json 版本代码是 4102.
时,这个版本代码仍然是增量的意思
这是我的 output.json:
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":4103},"path":"ui-android-release.apk","properties":{"packageId":"com.example","split":"","minSdkVersion":"17"}}]
这是我在项目级别 gradle 文件中使用的 dependencies.gradle:
ext {
// android
applicationId = "com.example"
compileSdkVersion = 26
minSdkVersion = 17
targetSdkVersion = 26
versionCode = 010007
versionName = "1.0.7"
buildToolsVersion = "27.0.3"
...
这是我的 ui-android 模块的 build.gradle(与所有模块相似):
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId rootProject.applicationId
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
buildTypes {
debug {
minifyEnabled false
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
}
dependencies {
rootProject.uiAndroidDependencies.each {
add(it.configuration, it.dependency, it.options)
}
}
在您的版本代码中前导 0 会造成混淆。在 Groovy 编程语言中,这指定 octal (base-8) number。事实上,八进制的 10007 等于十进制的 4103。您可能想要删除前导 0。
我有一个多模块 Android 项目,我的版本代码是 010007 但是当我 build 使用混淆器发布并缩小资源时,我得到版本代码为 4103 的 APK(可见于outputs.json proguard 生成的文件)。当我的版本代码是 010006 在 outputs.json 版本代码是 4102.
时,这个版本代码仍然是增量的意思这是我的 output.json:
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":4103},"path":"ui-android-release.apk","properties":{"packageId":"com.example","split":"","minSdkVersion":"17"}}]
这是我在项目级别 gradle 文件中使用的 dependencies.gradle:
ext {
// android
applicationId = "com.example"
compileSdkVersion = 26
minSdkVersion = 17
targetSdkVersion = 26
versionCode = 010007
versionName = "1.0.7"
buildToolsVersion = "27.0.3"
...
这是我的 ui-android 模块的 build.gradle(与所有模块相似):
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId rootProject.applicationId
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {
release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
buildTypes {
debug {
minifyEnabled false
}
release {
minifyEnabled true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
}
configurations.all {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
}
dependencies {
rootProject.uiAndroidDependencies.each {
add(it.configuration, it.dependency, it.options)
}
}
在您的版本代码中前导 0 会造成混淆。在 Groovy 编程语言中,这指定 octal (base-8) number。事实上,八进制的 10007 等于十进制的 4103。您可能想要删除前导 0。