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