我在使用Xcode 5和共享方案时遇到麻烦的问题。

在我的团队中(我们只有两个,但嘿!它仍然是一个团队),我们共享一些使用不同配置(调试,质量检查,发布...)运行应用的方案。

好了,据我所知,Xcode 5似乎根据开发人员的机器来更改每种方案的BlueprintIdentifier设置。当然,更改会引起git的注意,我们要么必须 checkout 它们,要么进行提交。两种解决方案都没有道理...

关于如何解决它的任何想法? 我做了一个谷歌搜索,但是没有找到Xcode 5 ...

我不想放弃那些共享的配置!我可以想出的一种解决方案,使共享的方案保持不共享状态,将其取消共享,将其复制到专用的测试文件夹中,然后使用类似于Pod的策略在本地复制那些方案,Xcode可以将其弄乱没有我们注意。类似于schemes脚本,该脚本读取Schemefile文件(该文件列出了要从Schemes/文件夹复制的方案),以及Schemefile.lock,每次更改时都会进行更新,并由Xcode构建过程读取,以确保一切正常。迄今为止。

对于这么小的事情,这似乎需要做很多工作,因此在深入研究之前,我想知道是否有人可以提出更好的解决方案。

干杯:)

最佳答案

首先,我假设您正在使用CocoaPods,因为您在问题中提到了它。

我已经有一段时间了,最​​近才发现我的某些共享方案没有与其他共享方案一起更改其BlueprintIdentifier。经过调查,我注意到未修改的方案在Pods下缺少一个builds目标,因为它以红色列出,如下所示:Pods (missing)。我的理论是pod install和各种Xcode事件(即崩溃,启动等)导致方案更改其BlueprintIdentifier,因为它们在方案build设置中引用了Pod目标。

我删除了所有方案中的Pods引用,此后一直无法重现BlueprintIdentifier的更改。我的依赖Pods的目标在libPods.aLink Binary With Libraries下指定了Build Phases并将其设置为required,因此仍在主目标之前对其进行编译。

请注意,进行此更改和不进行此更改的分支之间的切换仍可能会对方案文件进行修改。

关于Xcode 5和共享方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19024903/

10-13 06:42