可可豆荚的所有源文件都编译了两次

时间:2017-03-03 15:02:26

标签: ios objective-c xcode

我有一个Xcode项目(目标c,Xcode 8.2.1)。

每当我做“清理构建”并再次构建时,都需要很长时间。我开始研究这个原因,我注意到我的所有pod源文件都被编译了两次(我想编译时间翻了一倍)。

在Xcode的顶部,您可以看到构建过程中的状态

enter image description here

您可以在上面的屏幕截图中看到,Xcode正在为Realm pod编译142个源文件,但它只有71个源文件。我所有的其他豆荚都有同样的问题。

我测试了创建一个新的xcode项目并添加了pods,然后我没有遇到与此项目相同的问题。

@Bdash建议我可能将构建设置“仅构建活动架构”设置为“否”,但我已经检查了它并将其设置为“是”。

关于这可能是什么问题的任何想法?

2 个答案:

答案 0 :(得分:1)

如果您的构建配置具有自定义名称,则会发生这种情况。也就是说,如果您的名称不是DebugRelease,CocoaPods会将此类配置视为发布版本。除此之外,这意味着启用优化并将这些Pod的Build Active Architecture Only标志设置为YES。这两个选项都会阻碍Debug配置的编译时间。

要修复它,您必须指定哪些配置为Debug个。在the docs之后,您必须更改Podfile,因此它看起来像这样:

project 'MyApp', 'MyAppRelease' => :release, 'MyAppDebug' => :debug

答案 1 :(得分:0)

不幸的是,Realm是一个包含大量C ++和Objective-C ++源文件的大型项目,通常需要一段时间才能编译(特别是在清理构建文件夹之后)。 Realm构建需要多长时间取决于Xcode运行的计算机类型,但是您提供的数字对于旧硬件来说似乎并不合理。