Xcode 8每次都重新编译完整的代码

Mah*_*ish 128 xcode ios

随着代码的任何更改(尽管文件不在.pch中),每次都会重新编译完整的项目.

Nha*_*inh 33

更新2017/1/2

Xcode 8.2.1(我的项目)尚未解决此问题

如何生存?

Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
Run Code Online (Sandbox Code Playgroud)

2016/12/17更新

此问题尚未在Xcode 8.2中得到解决.

2016/12/12更新

现在我选择Atom来编写代码和命令行来构建和调试.希望Apple能尽快修复这个合法的错误.

2016/12/04更新

Xcode 8.2(beta 2)似乎解决了这个问题.

但对我来说,它没有得到解决,即使我使用Xcode 8.2,我也面临这个问题.你可以尝试一下(在这里下载Xcode8.2 beta2 )

构建系统•仅在发生小的更改时,Xcode不会重建整个目标.(28892475)


旧答案: 这是一个解决方法:

在此输入图像描述 "构建设置"选项卡 - >"C语言方言" - >将其更改为"编译器默认值".

供参考:

"C语言方言"设置为"GNU99"而不是"编译器默认".以前标准是GNU99,但现在不是.在某些时候,Xcode没有正确地迁移库项目设置,所以它被设置为GNU99.一旦我将其更改为GNU99,它每次都停止重新编译我的所有代码!

  • 哎它回来重新编译一切 (7认同)
  • 不幸的是,这个问题在Xcode 8.3 beta 2中仍然存在(至少对我们而言).在我们的项目中没有明显的改进. (3认同)

小智 19

转到产品 - >方案 - >编辑方案.在左侧列中选择Build并取消选中" Find implicit dependencies "

但是,当您第一次构建项目时,此标志应保持检查状态.

  • 不幸的是,这对我不起作用:( (4认同)
  • 它是一个基本工作空间,包括cocoapods和主要项目.CocoaPods保持构建,但主项目重建每个文件; 观看构建输出及其绝对重建的所有100多个文件. (3认同)

小智 7

修复我只是关闭故事板,我用辅助编辑器打开了源文件,并打开了故事板文件(关闭故事板---因为我没有对其进行任何更改)删除了所有不必要的编译


and*_*ers 5

更新

我能够做出的最大改进是模块化我的项目。专门模块化几乎所有其他类中使用的 ORM 层。通过将该代码移动到我项目中的一个单独目标并将其作为模块导入,我能够极大地缩短编译时间。当我进行构建时,Xcode 不再决定重新编译不必要的文件。

现在我使用单文件编译方法进行快速增量调试构建。

此链接中还有一些其他很好的建议,包括代码重构, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5

老的

使用 Xcode 9 对我来说仍然是一个持续的问题。和你们中的许多人一样,我正在处理一个包含许多源文件的大型swift 4/cocoapods项目,每次重新编译每个文件都令人恼火。

到目前为止,我通过以下设置获得了最佳结果。我建议你试一试,看看它是如何为你工作的。

  • 架构 -> 构建 -> “查找隐式依赖关系” = TRUE
  • 构建设置 ->链接时间优化 = 增量
  • 构建设置 ->优化级别(调试)= 无 [-OO]
  • 构建设置 ->优化级别(发布)= 最快、最小 [-Os]
  • 构建设置 ->增加预编译头文件的共享 = YES
  • Build Settings -> Enable Incremental Distill = YES

添加了自定义用户定义的构建设置,

  • 构建设置 -> HEADERMAP_USERS_VFS = YES

注意:我没有用于整个模块优化的自定义用户定义设置。