如何在编译出的产品中显示当前提交

若干年前看到过,当时问了一圈身边的小朋友,他们都没有解决。不过这个问题实在并不重要,过后也就搁置了。刚刚在网上看代码,看到了实操案例,记录下来。

这个问题一开始思考的话,会发现有点悖论的意思。如果你的当前代码尚未提交,如何能在代码中置入提交哈希值(此处以 git 的工作方式为例)?如果你的代码已经提交,代码中要显示出来的提交哈希值从何而来?结论其实很明显,该哈希值需要在构建的时候自行获取,不能在代码中。因此主要的工作就体现在了构建脚本里。

在构建脚本里把以下函数加入(以使用 Groovy 语言的 gradle 脚本构建 Android 应用为例)build.gradle

然后在 defaultConfig 中加入语句 buildConfigField "String", "GIT_COMMIT", "\"${getGitHash()}\"",此语句将在 BuildConfig 类中定义一个常量 GIT_COMMIT,该常量的值即为调用上述函数之一后返回的提交哈希。在源代码中,像使用其他常量一样,在需要的地方直接引用 BuildConfig.GIT_COMMIT 即可。

发表回复

您的电子邮箱地址不会被公开。