如何加快XCode編譯速度?

1. 增加XCode執行的線程數

可以根據自己Mac的性能,更改線程數設置5:defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 5

另外也有一個設置可以開啟:defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

XCode默認使用與CPU核數相同的線程來進行編譯,但由于編譯過程中的IO操作往往比CPU運算要多,因此適當的提升線程數可以在一定程度上加快編譯速度。

2.將Debug Information Format改為DWARF

在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。

如圖:

這一項設置的是是否將調試信息加入到可執行文件中,改為DWARF后,如果程序崩潰,將無法輸出崩潰位置對應的函數堆棧,但由于Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響并不大。這一項更改完之后,可以大幅提升編譯速度。

比如在目前本人負責的項目中,由于依賴了多個Target,所以需要在每個Target的Debug Information Format設置為DWARF。順便提一下,如果通過Cocoapod引入第三方則Debug Information Format默認就是設置為DWARF的。

SDWebImage通過Cocoapod``Debug Information Format的默認設置

注意:將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。

這一項設置的是是否僅編譯當前架構的版本,如果為NO,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為NO`,否則發布的ipa在部分設備上將不能運行。這一項更改完之后,可以顯著提高編譯速度。

4.設計編譯優化等級

不要再項目中或者靜態庫中使用-O4,因為這會讓Clang鏈接Link Time Optimizations (LTO)使得編譯更慢,通常使用-O3。

注意:在設置編譯優化之后,XCode斷點和調試信息會不正常,所以一般靜態庫或者其他Target這樣設置。

4.資源整合

4.1 將常用的代碼及文件打包成靜態庫

4.2 添加預編譯文件,把常用的頭文件放到預編譯文件里面

4.3 能用@class就用@class

來源:cocoachina

上一篇: iOS 和 Android 哪個更利于賺錢呢?

下一篇: 如何在Xcode 8中更好地使用StoryBoard

分享到: 更多
1分快三计划软件 双色球1000期走势图 福建时时开奖号码 福彩3d包胆中了多少钱 快三稳赚技巧计划方法 大乐透走势图表图30期 七乐彩黑马计划 江苏时时网投 福彩欢乐生肖开奖直播 pk10看走势图教程视频 重庆时时最长开过多少次单双大小 850通比牛牛如何稳赢 极速pk10是正规彩票吗 5星时时缩水 时时彩改欢乐生肖 快速时时走势图