swift Xcode编译速度优化

方案一:

当修改一个 Swift 文件或多个文件,然后 Build , 引起全局编译的时候,可以先到 Report Navigator 里面查看这次 Build,等这次修改的Swift 的文件都编译完(Xcode 会优先编译本次修改的文件 ),停止 Build,再重新 Build,第二次 Build 一般会在 60s 以内成功。

缺点:1、初次编译和 Clean完,需要大概 1500s 左右

2、有时会引起 code 1 错误,这个错误可以通过先 Clean ,再 Build 修复。 PS:只要在Report Navigator 等修改的 Swift 文件编译完,基本不会引起 code1 错误

3、部分情况下会失效

2017.2.23 号的优化已经将 Clean Build 时间降低到 1000s 左右,也去掉了很多引起重新编译的代码。每天编译次数比较多的情况建议使用这个方案

方案二

在 Project 的 Build Setting 里面添加 SWIFT_WHOLE_MODULE_OPTIMIZATION = YES (如下图),每次编译大概 120s 左右。

swift Xcode编译速度优化_第1张图片

缺点: 每次编译都是 120s 左右,有点让人抓狂。

2017.2.23 号的优化已经将 Clean Build 时间降低到 155s 左右,增量编译时间 100s 左右,每天编译次数不是特别多,或需要及时调试建议使用这种方案

方案三:

将每个 Target 的build setting'Swift Compiler - Code Generation' 的 'Optimization Level' 设为  'Fast, Whole Module Optimization',

同时需要将 'Swift Compiler - Custom Flags' 的 'Other swift Flag' 增加 '-Onone' (也可以在 PROJECT 下Build Settings -Swift Compiler - Custom Flags' 的 'Other swift Flag' 一次性增加 '-Onone')

swift Xcode编译速度优化_第2张图片

swift Xcode编译速度优化_第3张图片

Clean Build  时间 146s 左右,增量编译时间 97s 左右,这个是最快方案,也是设置最繁琐方案。

PS:删除 SwiftLint 的脚本可以降低所有编译时间 10s - 15s 左右,有需求的可以临时删除执行Swiftlint 的脚本,脚本如下:

if which swiftlint >/dev/null;

then

swiftlint

#cd Teambition&&swiftlint

else

echo"SwiftLint does not exist, download fromhttps://github.com/realm/SwiftLint"

fi

你可能感兴趣的:(swift Xcode编译速度优化)