【发布时间】:2013-09-07 14:26:46
【问题描述】:
SO 中已经有很多关于此的问题(和答案),但似乎都没有解决这个具体问题,或者我只是不理解这个过程。典型的开发流程,结束于:
- 最终代码修复和测试
- 提交到 Git
- 使用版本号标记提交
- 运行脚本以更新 Info.plist 的版本和内部版本号
- ????
我在 Post-Archive 构建步骤中运行第 4 步,因此 plist 得到更新并创建了我的分发存档。效果很好,除了...
我提交和标记的快照不是更新的 Info.plist 中包含正确版本信息的快照。这是第 22 条规则。在更新 plist 之前我无法提交,但在我有标记提交之前我无法更新 plist。
是的,我可以将更改后的 plist 压缩回提交,然后重新标记,但这肯定不是自动化的,而且容易出错。
也许我应该在提交前或提交后挂钩中执行此操作?还是我的流程有问题?
编辑:这个问题专门关于在 Xcode 中使用 Git,以及该特定环境中的最佳实践。我想仅仅在问题上加上 Xcode 标签是不够的。
【问题讨论】:
-
为什么不在更新 Info.plist 后简单地创建标签?我不确定我是否理解这个问题。
-
目前,版本号(和标签)取决于提交。也就是说,该脚本从已经提交的标签生成版本号,该版本号进入 info.plist。
-
貌似stackoverflow.com/a/11899540/177415问了同样的问题,但我没看懂回复。
-
您的意思是您存储在 Info.plist 中的版本号取决于 Git 的 SHA1 提交 id 的实际值吗?是的,您将无法将其存储在 Info.plist and 具有相同值的标签中。即使是压缩提交也不行。
-
不,它不依赖于 SHA1 ID,但它确实要求提交(和标签)已经存在。我认为您的建议是使用新版本号手动编辑 Info.plist,然后进行提交,然后标记该提交。对我来说似乎很容易出错。