本文和大家分享的主要是ios開發(fā)中XCode編譯速度的問題,如何加快編譯速度呢?下面小編和大家一起來扒一扒,希望對大家有所幫助。
1. 增加XCode執(zhí)行的線程數(shù)(????)
可以根據(jù)自己 Mac 的性能,更改線程數(shù)設置 5 : defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 5
另外也有一個設置可以開啟: defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
XCode默認使用與CPU核數(shù)相同的線程來進行編譯,但由于編譯過程中的IO操作往往比CPU運算要多,因此適當?shù)奶嵘€程數(shù)可以在一定程度上加快編譯速度。
2.將Debug Information Format改為DWARF(????????????)
在工程對應 Target 的 Build Settings 中,找到 Debug Information Format 這一項,將Debug時的 DWARF with dSYM file 改為 DWARF 。
如圖:
這一項設置的是是否將調試信息加入到可執(zhí)行文件中,改為DWARF后,如果程序崩潰,將無法輸出崩潰位置對應的函數(shù)堆棧,但由于Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響并不大。這一項更改完之后,可以大幅提升編譯速度。
比如在目前本人負責的項目中,由于依賴了多個 Target ,所以需要在每個 Target的 Debug Information Format 設置為 DWARF 。 順便提一下,如果通過 Cocoapod 引入第三方則 Debug Information Format 默認就是設置為 DWARF 的。
?。?/span>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`,否則發(fā)布的ipa在部分設備上將不能運行。這一項更改完之后,可以顯著提高編譯速度。
4.設計編譯優(yōu)化等級(????)
不要再項目中或者靜態(tài)庫中使用 -O4 ,因為這會讓 Clang 鏈接 Link Time Optimizations (LTO) 使得編譯更慢,通常使用 -O3 。
文章來源:CocoaChina