如何使用 git hash 作为构建版本或 CFBundleVersion

Posted

技术标签:

【中文标题】如何使用 git hash 作为构建版本或 CFBundleVersion【英文标题】:How can I use git hash as build version or CFBundleVersion 【发布时间】:2017-09-05 10:55:35 【问题描述】:

我一直使用简短的 git 修订哈希作为我的项目的构建版本。目的是使发布和 git 提交之间的交叉引用变得容易。但是,当我尝试将构建上传到 iTunes Connect 时,我收到一个错误,指出构建版本不能包含字母。

"Invalid value '1.3.7 (1bc4e83)' for bundle_version...

环顾网络,我找不到可行的解决方案。我见过的一种常见方法是只使用一个数字并为每次构建增加它。这不能满足我对交叉引用的需求。有没有办法做到这一点?常见的做法是什么?

【问题讨论】:

【参考方案1】:

来自Apple's documentation:

CFBundleVersion 指定捆绑包的构建版本号,它标识捆绑包的迭代(已发布或未发布)。 这是一个单调递增的字符串,由一个或多个句点分隔的整数组成。

因此,您不能将 git 哈希用作 CFBundleVersion,因为它不是以句点作为分隔符的单调递增字符串。

对于替代解决方案,您可以在提交消息中包含内部版本号。

【讨论】:

以上是关于如何使用 git hash 作为构建版本或 CFBundleVersion的主要内容,如果未能解决你的问题,请参考以下文章

在 VSTS 中使用 git tag 或 package.json 版本作为 Release 名称

如何通过使用 git 提交号作为 xcode 内部版本号来避免无限循环

在 gulp 构建期间将 git commit hash 添加到 javascript 变量

在 webpack 构建中包含 git commit hash 和 date

如何在反应原生 ios 应用程序中更新应用程序版本?

如何使用 Git 的 `describe` 命令派生应用程序构建版本字符串?