(iOS,XCode 4.2)使用Git post-commit hook设置包版本会导致我的项目变成Mac项目

我决定开始将我的项目“Apple方式”开始版本化,使用“Bundle versions string,short”用于我的项目的“营销版本”(即2.0.1 ),并将“Bundle version”用作版本号(例如42 )。

为此,我添加了一个Git post-commit钩子来调用agvtool next-version -all 。 实际上这确实有效 – Info.plist正在使用递增的版本号进行适当更新。

然而,它还有一个令人遗憾的副作用,显然是将我的iOS项目转换为Mac项目 – iOS deviceiPhone 5.0 simulator等从我的Scheme菜单中消失,用一个条目My Mac 64-bit替换。 幸运的是,这一变化似乎是暂时的,因为退出并重新启动Xcode会带回缺少的iOS方案条目。

我做错了吗? 有没有更好的方法来实现我的目标? 或者我遇到了Xcode中一个奇怪的错误?

我有完全相同的问题,但不是重新启动Xcode我只是在目标选项的Summary选项卡中重新选择Deployment Target 。 这要快得多。

XCode 4尝试在每次更改时解析项目文件,而不是XCode 3.2,它只在程序本身获得焦点时解析项目文件。

我不会把它称之为bug本身,但它肯定会让人感到沮丧。

Fwiw,我已经看到在连接或断开我的iDevice AND时这种方案发生了这种情况,而Xcode考虑我已经做了什么,弄乱了方案菜单。 关闭并重新打开项目会修复它。

我通常会在提交之前确保我的项目文件已关闭。 如果我的post-commit脚本也修改了项目文件,我肯定会这样做。