Swift51.com
麦子学院 头像
麦子学院  2016-11-22 10:54

如何加快XCode编译速度?

回复:0  查看:4313  

本文和大家分享的主要是ios开发XCode编译速度的问题,如何加快编译速度呢?下面小编和大家一起来扒一扒,希望对大家有所帮助。

  1. 增加XCode执行的线程数(????

  可以根据自己 Mac 的性能,更改线程数设置 5  defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 5

  另外也有一个设置可以开启: defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

  XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升线程数可以在一定程度上加快编译速度。

如何加快XCode编译速度?


 2.Debug Information Format改为DWARF????????????

  在工程对应 Target  Build Settings 中,找到 Debug Information Format 这一项,将Debug时的 DWARF with dSYM file 改为 DWARF 

  如图:


如何加快XCode编译速度?


这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度。

  比如在目前本人负责的项目中,由于依赖了多个 Target ,所以需要在每个 Target Debug Information Format 设置为 DWARF  顺便提一下,如果通过 Cocoapod 引入第三方则 Debug Information Format 默认就是设置为 DWARF 的。

  .SDWebImage 通过 Cocoapod``Debug Information Format 的默认设置


如何加快XCode编译速度?


 注意:将 Debug Information Format 改为 DWARF 之后,会导致在 Debug 窗口无法查看相关类类型的成员变量的值。当需要查看这些值时,可以将 Debug Information Format 改回 DWARF with dSYM file  clean(必须) 之后重新编译即可。

  3.Build Active Architecture Only改为Yes????

  在工程对应 Target  Build Settings 中,找到 Build Active Architecture Only 这一项,将 Debug 时的 NO 改为 Yes 

如何加快XCode编译速度?


这一项设置的是是否仅编译当前架构的版本,如果为 NO ,会编译所有架构的版本。 需要注意的是,此选项在 Release 模式下必须为NO`,否则发布的ipa在部分设备上将不能运行。这一项更改完之后,可以显著提高编译速度。

  4.设计编译优化等级(????

  不要再项目中或者静态库中使用 -O4 ,因为这会让 Clang 链接 Link Time Optimizations (LTO) 使得编译更慢,通常使用 -O3 

 

文章来源:CocoaChina