我遇到了Xcode 5和共享方案的烦人问题。
在我的团队中(我们只有两个,但是嘿!它仍然是一个团队)我们正在共享一些Schemes来运行具有不同配置的应用程序(Debug,QA,Release,...)
现在,Xcode 5似乎根据我的理解,在开发人员的机器上更改了每个方案的BlueprintIdentifier
设置。当然,变化会被注意到位git,我们要么必须签出它们,要么提交。这两种解决方案都没有意义......
关于如何修复它的任何想法?我做了谷歌搜索,但没有找到Xcode 5 ...
我不想放弃这些共享配置!我可以想出一个跟踪共享Schemes的解决方案是将它们取消共享,将它们复制到专用的测试文件夹中,然后使用类似Pod的策略在本地复制这些方案,其中Xcode可以搞砸它们没有我们注意到。类似于schemes
脚本读取Schemefile
文件,其中列出了要从Schemes/
文件夹中复制的方案,以及Schemefile.lock
每次更改时更新的{{1}}由Xcode构建过程读取,以确保所有内容都是最新的。
对于这么小的事情来说,这似乎有很多工作,所以在开始讨论它之前,我想知道是否有人有更好的解决方案。
干杯:)
答案 0 :(得分:2)
首先,我假设你正在使用CocoaPods,因为你在问题中提到过它。
我有一段时间没有这个问题,最近才发现我的一些共享方案没有让其他人BlueprintIdentifier
改变。经过调查,我注意到未触及的方案在Pods
下的builds
目标丢失了 - 因为它以红色列出,如下所示:Pods (missing)
。我的理论是pod install
和各种Xcode事件(即崩溃,启动等)导致该方案改变其BlueprintIdentifier
因为它们在方案中引用了Pod
目标建立设置。
我删除了所有方案中的Pods
引用,但之后无法重现BlueprintIdentifier
更改。我的Pods
的目标libPods.a
在Link Binary With Libraries
的{{1}}下指定并设置为必需,因此它仍会在主要目标之前进行编译。
请注意,使用此更改在没有此更改的情况下切换分支可能仍会对方案文件进行修改。
答案 1 :(得分:2)
@Wes的回答并没有特别为我解决这个问题,但它确实把我带到了正确的地方。对我来说,解决方案是将“查找隐式依赖关系”从“关闭”(未选中)转换为“打开”(选中),从“编辑方案”屏幕中转换为不断变化的方案。