SwiftLint - Swift 代码检查

1,110 阅读2分钟

前言:从长远来看,代码检查对于个人成长及公司发展大有裨益。前面我们介绍了 Objective-C 代码静态检查工具 OCLint 的安装及基本使用:OCLint - Objective-C 代码检查,本文介绍 Swift 代码静态检查,如有谬误欢迎指正👏🏻

1. Swift 代码检查方式

  • Xcode Analyze
  • SwiftLint 同样地,Xcode Analyze 本文不做介绍,默认快捷键shift+cmd+B 运行分析即可。以下介绍 SwiftLint 执行代码检查。

2. SwiftLint 简介

SwiftLint 官网地址:SwiftLintFramework Reference (realm.github.io) SwiftLint 仓库地址:realm/SwiftLint: A tool to enforce Swift style and conventions. (github.com)

A tool to enforce Swift style and conventions, loosely based on the now archived GitHub Swift Style Guide. SwiftLint enforces the style guide rules that are generally accepted by the Swift community.

SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具。

3. SwiftLint 代码检查

SwiftLint 使用方式随安装方式不同而不同,但总体分为全局安装和项目安装两种方式,本文主要介绍在 Xcode 下全局安装和项目安装以及相应的使用方法。其他如 MintAppCodefastlane,由于项目中没有使用,本文不涉及相关内容,后续有机会再作补充。

3.1. 全局安装

3.1.1. Homebrew

如果要安装 SwiftLint最新版本,首先执行以下命令,更新 Homebrew 自身:

brew update

安装 SwiftLint

brew install swiftlint

验证 SwiftLint 版本:

swiftlint --version

正常输出(当前版本):

0.47.1

3.1.2. 安装包安装

进入 SwiftLint 仓库,选择 Releases,即可看到所有版本记录。目前最新版本 0.47.1,选择 macOS pkg 版本:SwiftLint.pkg 下载安装。

3.2. 全局安装使用

所谓全局安装,是只需安装一次,项目中添加相应脚本使用。
通过 Xcode 打开项目,进入 Targets - Build Phases,点击页面 '+',选择 New Run Script Phase
新建后在 Run Script 添加以下脚本:

if which swiftlint >/dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

对于 M1 芯片 Mac,由于 Homebrew 路径与 Intel 芯片有所不同,需要执行前添加环境变量:

export PATH="$PATH:/opt/homebrew/bin"
if which swiftlint > /dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

或者,通过以下命令添加链接后无需添加环境变量:

ln -s /opt/homebrew/bin/swiftlint /usr/local/bin

然后编译项目,看看是否多了一些警告或错误~

3.3. 项目安装

项目安装就非常简单了,通过 CocoaPods,在 podfile 中添加:

pod 'SwiftLint'

执行命令安装:

pod install

3.4. 项目安装使用

所谓项目安装,即每个使用的项目都要通过 pod 引入。
通过 Xcode 打开项目,进入 Targets - Build Phases,点击页面 '+',选择 New Run Script Phase
新建后在 Run Script 添加以下脚本:

"${PODS_ROOT}/SwiftLint/swiftlint"

然后编译项目,看看是否多了一些警告或错误~

4. TODO

  • 补充 SwiftLint 检查规则;
  • 自定义检查规则;
  • 通过命令检查指定文件夹或文件;

5. 参考资料