自动版本管理脚本
在 CI/CD 或日常发布中,手动修改 versionCode 和 versionName 很容易遗漏。
1. 基于 Git 提交次数生成 VersionCode
这能保证每个提交的版本号都是唯一的。
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()
}
}2. 自动格式化产物名称
生成类似 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
}
}