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