8

我已经配置了 build.gradle,因此每次创建发布版本时它都会增加 version.properties 中的版本代码。我还使用版本代码作为 apk 文件名。但是,Android Studio 似乎忽略了版本更改,因此当我从 ide 运行调试构建然后使用控制台组装 Release 构建(这会增加版本号)然后再次从 IDE 运行调试时,它会正确构建一个带有增加版本的 apk文件名 BUT 将旧的 apk 上传到设备。

例如,让我们有一个版本代码 = 377。

  1. 从 IDE 运行调试构建-> 构建并上传 GradleTestApp-v1.5( 377 )-debug- unaligned.apk
  2. 做 gradle assambleRelease -> 构建 GradleTestApp-v1.5( 377 )-release-unsigned.apk 然后将 versionCode 增加到 378
  3. 再次从 IDE 运行调试构建 -> 构建 GradleTestApp-v1.5( 378 )-debug-unaligned.apk (正确的行为)但是将旧的 GradleTestApp-v1.5( 377 )-debug-unaligned.apk 上传到设备

我错过了什么?

这是我的gradle脚本:

ext{
    versionPropFile = 'version.properties'
    Properties versionProps =  getVersionProps()
}
project.archivesBaseName=project.archivesBaseName+"-v"+versionProps['name'] + "(" + versionProps['code']+")"


def Properties getVersionProps(){
    def Properties versionProps = new Properties()
    versionProps.load(new FileInputStream(file(versionPropFile)))
    return versionProps
}

task('increaseVersionCode') << {
    def Properties versionProps = new Properties()
    versionProps.load(new FileInputStream(file(versionPropFile)))
    int versionCode = versionProps['code'].toInteger()
    versionProps['code'] = (versionCode+1)+""
    versionProps.store(new FileOutputStream(file(versionPropFile)), "App version properties")
    println 'increasing version code to ' + versionProps['code']
}
android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"
        ...
}

assembleRelease.dependsOn('increaseVersionCode')
4

0 回答 0