我需要编写一个 gradle 脚本来在每次提交时自动版本化我的应用程序。我还需要在应用程序中包含提交哈希作为测试人员的引用。
我很困惑自动版本控制通常是如何工作的。有人可以解释一下自动版本控制过程吗?
最佳答案
我遇到了类似的问题,但不想修改 versionName 以包含 git hash。我们希望将其保留为类似于 1.2.2 的版本,但仍然可以在 UI 中显示 git 哈希值。
我修改了the other answer here中的代码使用buildConfigField任务生成一个可以在Java代码中引用的BuildConfig.GitHash值。
将其添加到模块的 build.gradle 文件的 android
部分上方:
def getGitHash = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}
然后将以下行添加到 build.gradle 的 android
部分的 defaultConfig
部分,即在 versionName
下面:
buildConfigField "String", "GitHash", "\"${getGitHash()}\""
这会在自动生成的 BuildConfig.java 文件中生成以下行:
// Fields from default config.
public static final String GitHash = "e61af97";
现在您可以使用 BuildConfig.GitHash
在 Java 代码中获取 git 哈希值。
关于android - Gradle 脚本自动版本并在 Android 中包含提交哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745215/