Skip to content

自动版本管理脚本

在 CI/CD 或日常发布中,手动修改 versionCodeversionName 很容易遗漏。

Git 动态版本号

这能保证每个提交的版本号都是唯一的。

kotlin
fun getGitCommitCount(): Int {
    return try {
        val stdout = ByteArrayOutputStream()
        exec {
            commandLine("git", "rev-list", "--count", "HEAD")
            standardOutput = stdout
        }
        stdout.toString().trim().toInt()
    } catch (e: Exception) {
        1 // 默认值
    }
}

android {
    defaultConfig {
        versionCode = getGitCommitCount()
    }
}

产物命名自动化

生成类似 AppName_v1.0.2_debug_20240225.apk 的文件名。

kotlin
android.applicationVariants.all {
    outputs.all {
        val output = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
        val date = java.text.SimpleDateFormat("yyyyMMdd").format(java.util.Date())
        val name = "MyApp_v\${versionName}_\${name}_\${date}.apk"
        output.outputFileName = name
    }
}