一、安装

个人倾向于使用 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 配置

项目中可能会使用CocoapodsCarthage引入了第三方库,如果不对 Swift Lint 加以配置,则会导致这部分第三方库也被纳入到代码检查的范围,这是我们不期望看到的。同时,如果你正在维护一个历史久远,可能从 Swfit 2 时期就存在的项目的话,打开 Swift Lint 之后你将可能看到 999+个红色的编译错误。同时大量修改代码,并确保功能不出问题,这对任何人来说应该都是极大的负担,在这种情况下,我们可能会期望暂时禁用某些规则,如force_cast,以便在确保项目正常编译的同时,渐进式的完成 Swfit Lint 的修改工作,而这一切都必须依赖于自定义的 .swiftlint.yml配置文件。

1. 忽略文件

在项目根目录下创建一个.swiftlint.yml文件:


vim .swiftlint.yml

然后为其加入如下代码:


excluded: # 你所希望不要检索的路径,SwiftLint会无视掉该路径下的文件
  - Carthage
  - Pods

即可方便的忽略掉通过CocoapodsCarthage引入的第三方库,如果项目中还有其他不想要做 Swift Lint 代码检查的文件或目录,也照此办理即可。

2. 禁用规则

.swiftlint.yml中加入如下代码:


disabled_rules: # 禁用指定的规则
  - force_try
  - force_cast

即可禁用对应的规则