如何以编程方式更改版本代码和版本名称?

时间:2014-06-26 12:00:48

标签: android

我想更新我的应用更改版本和名称的值,我没有找到任何内容,关于以编程方式更改版本

4 个答案:

答案 0 :(得分:1)

对于 Android,您可以轻松地增加 versionCode 和 versionName

将此添加到您的 gradle 脚本中,并创建一个文件 version.properties,其中 VERSION_CODE=555

android {
        compileSdkVersion 30
        buildToolsVersion "30.0.3"
    
        def versionPropsFile = file('version.properties')
        if (versionPropsFile.canRead()) {
            def Properties versionProps = new Properties()
    
            versionProps.load(new FileInputStream(versionPropsFile))
    
            def code = versionProps['VERSION_CODE'].toInteger() + 1
    
            versionProps['VERSION_CODE'] = code.toString()
            versionProps.store(versionPropsFile.newWriter(), null)
    
    
            defaultConfig {
                applicationId "app.umanusorn.playground"
                minSdkVersion 29
                targetSdkVersion 30
                versionCode code
                versionName code.toString()

答案 1 :(得分:0)

版本名称&您必须在Manifest Itself中提及的版本代码,因此您可以手动更改并提供更新但不能更改programatically

答案 2 :(得分:0)

你不能这样做而不是在manifest.xml中进行

答案 3 :(得分:0)

我设法做到了。

version = sys.argv[1]
gradle_file = './path/to/your/build.gradle'
with open(gradle_file, 'r+') as file:
    offset = 0
    previous_line_length = 0
    for line in file:
        if "versionName" in line:
            previous_line_length = len(line)
            break
        offset += len(line)

    new_line = '        versionName "'+version+'"'
    # add spaces at the end if new line is shorter than previous
    diff = previous_line_length - len(new_line) - 1 # minus 1 for the carriage return char
    length_diff = diff if diff >= 0 else 0
    for i in range(length_diff):
        new_line += ' '
    new_line += '\n'
    file.seek(offset)
    file.write(new_line)

这是一个python脚本,您可以使用新版本字符串调用它,例如:

python script.py 1.2.3

您需要在build.gradle文件的versionName行末尾添加安全空间,否则较长的版本名称会使文件陷入混乱。

希望有所帮助。