方案一:
當(dāng)修改一個 Swift 文件或多個文件,然后 Build , 引起全局編譯的時候,可以先到 Report Navigator 里面查看這次 Build晕拆,等這次修改的Swift 的文件都編譯完(Xcode 會優(yōu)先編譯本次修改的文件 )绘梦,停止 Build,再重新 Build涯竟,第二次 Build 一般會在 60s 以內(nèi)成功赡鲜。
缺點(diǎn):1、初次編譯和 Clean完庐船,需要大概 1500s 左右
2银酬、有時會引起 code 1 錯誤,這個錯誤可以通過先 Clean 筐钟,再 Build 修復(fù)揩瞪。 PS:只要在Report Navigator 等修改的 Swift 文件編譯完,基本不會引起 code1 錯誤
3篓冲、部分情況下會失效
2017.2.23 號的優(yōu)化已經(jīng)將 Clean Build 時間降低到 1000s 左右李破,也去掉了很多引起重新編譯的代碼。每天編譯次數(shù)比較多的情況建議使用這個方案
方案二:
在 Project 的 Build Setting 里面添加 SWIFT_WHOLE_MODULE_OPTIMIZATION = YES (如下圖)壹将,每次編譯大概 120s 左右嗤攻。
缺點(diǎn): 每次編譯都是 120s 左右,有點(diǎn)讓人抓狂诽俯。
2017.2.23 號的優(yōu)化已經(jīng)將 Clean Build 時間降低到 155s 左右妇菱,增量編譯時間 100s 左右,每天編譯次數(shù)不是特別多,或需要及時調(diào)試建議使用這種方案
方案三:
將每個 Target 的build setting'Swift Compiler - Code Generation' 的 'Optimization Level' 設(shè)為 ?'Fast, Whole Module Optimization'恶耽,
同時需要將 'Swift Compiler - Custom Flags' 的 'Other swift Flag' 增加 '-Onone' (也可以在 PROJECT 下Build Settings -Swift Compiler - Custom Flags' 的 'Other swift Flag' 一次性增加 '-Onone')
Clean Build ?時間 146s 左右密任,增量編譯時間 97s 左右,這個是最快方案偷俭,也是設(shè)置最繁瑣方案浪讳。
PS:刪除 SwiftLint 的腳本可以降低所有編譯時間 10s - 15s 左右,有需求的可以臨時刪除執(zhí)行Swiftlint 的腳本涌萤,腳本如下:
if which swiftlint >/dev/null;
then
swiftlint
#cd Teambition&&swiftlint
else
echo"SwiftLint does not exist, download fromhttps://github.com/realm/SwiftLint"
fi