一、安装
个人倾向于使用 Homebre 直接安装在 Mac 上,无需对每个项目的 Podfile 做改动
brew install swiftlint
完成安装后,还需要在项目中添加一个 Run Script
,使每次 Build 都会自动调用 Swift Lint 作代码扫描和校正。
if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
以上脚本的
else
分支会在当前设备未安装/配置 Swift Lint 的时候在控制台输出提示
二、Swift Lint 配置
项目中可能会使用Cocoapods
或Carthage
引入了第三方库,如果不对 Swift Lint 加以配置,则会导致这部分第三方库也被纳入到代码检查的范围,这是我们不期望看到的。同时,如果你正在维护一个历史久远,可能从 Swfit 2 时期就存在的项目的话,打开 Swift Lint 之后你将可能看到 999+
个红色的编译错误。同时大量修改代码,并确保功能不出问题,这对任何人来说应该都是极大的负担,在这种情况下,我们可能会期望暂时禁用某些规则,如force_cast
,以便在确保项目正常编译的同时,渐进式的完成 Swfit Lint 的修改工作,而这一切都必须依赖于自定义的 .swiftlint.yml
配置文件。
1. 忽略文件
在项目根目录下创建一个.swiftlint.yml
文件:
vim .swiftlint.yml
然后为其加入如下代码:
excluded: # 你所希望不要检索的路径,SwiftLint会无视掉该路径下的文件
- Carthage
- Pods
即可方便的忽略掉通过Cocoapods
或Carthage
引入的第三方库,如果项目中还有其他不想要做 Swift Lint 代码检查的文件或目录,也照此办理即可。
2. 禁用规则
在.swiftlint.yml
中加入如下代码:
disabled_rules: # 禁用指定的规则
- force_try
- force_cast
即可禁用对应的规则