如何提高XCode編譯速度:
提升編譯鏈接的速度主要有以下三個方式:
1. 提高XCode編譯時使用的線程數(shù)
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4
XCode默認使用與CPU核數(shù)相同的線程來進行編譯骨稿,但由于編譯過程中的IO操作往往比CPU運算要多笨鸡,因此適當(dāng)?shù)奶嵘€程數(shù)可以在一定程度上加快編譯速度。本人采用的是4核的CPU坦冠,將線程數(shù)改為8后編譯速度略有提升形耗。
2. 將Debug Information Format改為DWARF
在工程對應(yīng)Target的Build Settings中,找到Debug Information Format這一項辙浑,將Debug時的DWARF with dSYM file改為DWARF激涤。
這一項設(shè)置的是是否將調(diào)試信息加入到可執(zhí)行文件中,改為DWARF后,如果程序崩潰倦踢,將無法輸出崩潰位置對應(yīng)的函數(shù)堆棧送滞,但由于Debug模式下可以在XCode中查看調(diào)試信息,所以改為DWARF影響并不大辱挥。這一項更改完之后犁嗅,可以大幅提升編譯速度。
需要注意的是晤碘,將Debug Information Format改為DWARF之后褂微,會導(dǎo)致在Debug窗口無法查看相關(guān)類類型的成員變量的值。當(dāng)需要查看這些值時园爷,可以將Debug Information Format改回DWARF with dSYM file宠蚂,clean(必須)之后重新編譯即可。
3. 將Build Active Architecture Only改為Yes
在工程對應(yīng)Target的Build Settings中童社,找到Build Active Architecture Only這一項求厕,將Debug時的No改為Yes。
這一項設(shè)置的是是否僅編譯當(dāng)前架構(gòu)的版本扰楼,如果為No呀癣,會編譯所有架構(gòu)的版本。需要注意的是灭抑,此選項在Release模式下必須為Yes十艾,否則發(fā)布的ipa在部分設(shè)備上將不能運行。這一項更改完之后腾节,可以顯著提高編譯速度。
本人在設(shè)置完以上三個項之后荤牍,編譯時間從1分鐘左右減少到10秒左右案腺,因此效果還是相當(dāng)明顯的。
Xcode卡頓解決方案:
1康吵、禁用indexing
在終端(terminal) 輸入
defaults write com.apple.dt.XCode IDEIndexDisable 1
并重啟Xcode劈榨。
(新手勿用哈,附還原命令)
defaults write com.apple.dt.XCode IDEIndexDisable 0
2晦嵌、減少系統(tǒng)記錄的最近打開數(shù)目數(shù)量
打開系統(tǒng)偏好設(shè)置——通用同辣,把“最近使用的項目”由默認10,修改為5或者更少惭载。
此時旱函,不一定能立即加速,需要重新啟動系統(tǒng)描滔。
3棒妨、提高XCode編譯時使用的線程數(shù)
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4
4、 將Debug Information Format改為DWARF
在工程對應(yīng)Target的Build Settings中含长,找到Debug Information Format這一項券腔,將Debug時的DWARF with dSYM file改為DWARF伏穆。
5、將Build Active Architecture Only改為Yes
在工程對應(yīng)Target的Build Settings中纷纫,找到Build Active Architecture Only這一項枕扫,將Debug時的No改為Yes。
這一項設(shè)置的是是否僅編譯當(dāng)前架構(gòu)的版本辱魁,如果為No铡原,會編譯所有架構(gòu)的版本。需要注意的是商叹,此選項在Release模式下必須為No燕刻,否則發(fā)布的ipa在部分設(shè)備上將不能運行。這一項更改完之后剖笙,可以顯著提高編譯速度卵洗。