更改在gradle脚本中创建的应用程序的versionCode

时间:2018-02-15 11:59:43

标签: android gradle android-gradle version

在我没有开发的Android应用中,但我必须编辑,我找到了这个gradle脚本:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.ajoberstar:grgit:1.5.0'
    }
}

import org.ajoberstar.grgit.Grgit

ext {
    git = Grgit.open(currentDir: projectDir)
    gitVersionName = git.describe()
    gitVersionCode = git.tag.list().size()
    gitVersionCodeTime = git.head().time
}

task printVersion() {
    println("Version Name: $gitVersionName")
    println("Version Code: $gitVersionCode")
    println("Version Code Time: $gitVersionCodeTime")
}

" gitVersionCode"变量用作" versionCode" build.gradle文件中的应用程序 这是build.gradle文件:

// gradle script
apply from: "$project.rootDir/tools/script-git-version.gradle"
//...
defaultConfig {
    applicationId "..."
    minSdkVersion 17
    targetSdkVersion 25
    versionCode gitVersionCode
    versionName gitVersionName
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

当我生成已签名的APK并尝试添加到测试版时,我收到了#34;版本代码已存在&#34;的谷歌错误,但我不知道如何编辑该应用的版本代码。< / p>

我的问题是:

  • 这段代码实际上做了什么?
  • 如何编辑应用的版本代码?

2 个答案:

答案 0 :(得分:1)

Git是一个版本控制系统。您的项目似乎存储在Git存储库中。

Grgit是一个与Git一起使用的Groovy库。您的Gradle脚本正在加载此库。

gitGrgit的一个实例。 git.tag.list() returns a list of the Git tags used in this repositorygit.tag.list().size()返回该列表中的标记数。

因此,这个Gradle脚本将versionCode设置为项目的Git存储库中使用的Git标记的数量。

  

如何编辑应用的版本代码?

或者:

  • 创建另一个Git标记,例如标记您要发布的版本,或

  • 更改versionCode gitVersionCode以停止使用gitVersionCode并使用其他编号系统

答案 1 :(得分:1)

似乎正在使用this library来查询git,以便生成版本名称和版本代码。就版本代码而言,它看起来像是根据它找到的git标签的数量进行设置。因此,要破坏版本代码,请在发布提交上执行git tag

如果这不合适,您可以手动完成并替换

versionCode gitVersionCode

versionCode 99

替换&#34; 99&#34;无论您的版本代码应该是什么。