需求
一个项目里有多个 Targets,其中一个的更新比较频繁,版本号递增很快,其他几个不经常更新,但是当它们更新的时候需要和更新快的那个版本号保持一致。如果每次都手动修改版本号,有点麻烦,所以需要找一个自动化方法实现多 Targets 版本号控制。
查找资料
Google 这几个关键词:“xcode general version auto”,找到一篇 Apple 官方文档:
https://developer.apple.com/library/content/qa/qa1827/_index.html
发现 Apple 提供了命令行工具 agvtool 来进行项目版本号控制,而且
“Important: When your app includes multiple targets, agvtool will set the version numbers of all your targets to the same number.” (重要:当你的 APP 包含多个 targets 的时候,agvtool 会把所有的 targets 设为同一个版本号)刚好符合需求。
解决
agvtool 命令行工具是 Xcode Command Line 的一部分,不需要单独安装。根据官方文档在工程里设置好 Versioning System 等内容后,在终端 cd 到项目目录下,执行如下命令:
1 | Version="1.7.5" |
成功修改了所有 Targets 的版本号。
最后,把这四行命令添加到项目的自动发布脚本里,就可以在每次发布新版本之前自动更新所有 Targets 的版本号了。
- 本文作者: Peter Luo
- 本文链接: http://luopeike.com/Xcode-多-Targets-版本号控制/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!