XCode 8非常慢的快速编译

fan*_*ncy 36 xcode ios swift swift3 xcode8

自从Swift 3和XCode8以来,我的项目编译速度非常慢.每次我添加一个空行到文件,重新编译需要一整分钟.当我检查输出时,没有特定的文件需要很长时间.(我也用这个工具测量它:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode)

它似乎总是一次编译4个文件."节奏"非常稳定.只是很慢......

另外:每当我打开或切换文件时,可能需要很长时间才能获得自动完成或错误/警告.

我可以检查什么?我几乎觉得我设置了一些标志,只是像疯了一样拖慢构建速度.

编辑: 这不是解决潜在问题的方法,但我花了一些时间将更多代码转移到框架上.这产生了不同(仅仅因为它每次都必须重新编译更少的文件).这不应该是必要的,但它无法忍受......我当然仍然非常期待一个正确的解决方案.

Con*_*nco 27

这个问题的一个问题是我们不知道错误的初始化/声明在哪里.我的同事建议的解决方案是找到哪个函数需要很长时间才能编译:

  1. 转到Project选择目标
  2. Build Settings - > Swift Compiler - Custom Flags
  3. 添加到Other Swift Flags -Xfrontend -warn-long-function-bodies=50(50表示以毫秒为单位的时间)

之后,警告应显示如下:

Getter'frameDescription'花了108ms进行类型检查(限制:50ms)

之后你知道该怎么做;)


小智 5

自从升级到Swift 3/XCode 8以来,我遇到了同样的问题,它似乎是由大数组文字引起的,类似于.

我能够通过向分配给数组文字的变量添加类型注释来解决问题,例如

let array: Array<String> = ["1", "2", "3", "4", "5", "6", "7", "8"]
Run Code Online (Sandbox Code Playgroud)

代替

let array = ["1", "2", "3", "4", "5", "6", "7", "8"]
Run Code Online (Sandbox Code Playgroud)


Vla*_*lad 5

这是Xcode 8的一个问题,它不能正确执行增量构建.如果您编辑单个swift文件,它应该只编译该文件.这已经在这里提出:Xcode 8完成了完整的项目重建

一次4个文件构建听起来像Xcode正在执行项目的完全重建,如果您只在一个文件中修改了一行,则不应该再次发生.

  • 我在这里看到一条说明(https://forums.developer.apple.com/thread/19342),如果有任何文件有警告,xcode将重建整个项目而不是增量更改.我删除了警告,似乎有帮助 - ymmv (2认同)