11

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

在我的团队中(我们只有两个,但是嘿!它仍然是一个团队)我们正在共享一些方案来运行具有不同配置的应用程序(调试、QA、发布......)

BlueprintIdentifier好吧,据我所知,现在 Xcode 5 似乎在开发人员的机器上更改了每个方案的设置。当然,更改会被 git 注意到,我们要么必须检查它们,要么提交。两种解决方案都没有意义...

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

我不想放弃那些共享配置!我可以想出的一个解决方案来继续跟踪共享方案是取消共享它们,将它们复制到一个专用的测试文件夹中,然后使用类似于 Pod 的策略在本地复制这些方案,Xcode 可能会弄乱它们没有我们注意到。类似于一个schemes脚本,它读取一个Schemefile列出要从Schemes/文件夹复制的方案的文件,并且Schemefile.lock每次发生一些更改时都会更新它,并由 Xcode 构建过程读取,以确保一切都是最新的。

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

干杯:)

4

2 回答 2

2

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

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

我删除了Pods所有方案中的引用,并且从那以后无法重现BlueprintIdentifier更改。我依赖的目标Pods已在inlibPods.a下指定并设置为必需,因此它仍会在主目标之前编译。Link Binary With LibrariesBuild Phases

请注意,在具有此更改和没有此更改的分支之间切换可能仍会产生对方案文件的修改。

于 2014-04-15T17:02:14.967 回答
2

@Wes 的回答并没有专门为我解决这个问题,但它确实把我带到了正确的地方。对我来说,解决方案是从不断变化的方案的编辑方案屏幕中将“查找隐式依赖项”从“关闭”(未选中)变为“打开”(选中)。

于 2014-08-12T16:11:48.663 回答