Swiftlintをプロジェクトに設定する
swiftlintを使ってなるべくスマートなコードを書けるようにする際のswiftlintの設定方法です。
Homebrew インストール
homebrewがインストールされている場合はスキップします。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brewでswiftlintをインストール
こちらもすでにインストール済みならば次のステップに進みます。
$ brew install swiftlint
プロジェクト内のBuild PhasesのRun Scriptにビルド時に実行するシェルスクリプトを記述
Run Script内に記述するコード
※ IntelMacとM1 Apple Siliconでは、brewのパスの影響でswiftlintの場所が微妙に違うためどちらのPCでも対応できるように条件分岐によってswiftlintを実行できるようにしてあります。
swiftlint_enable=true
if ${swiftlint_enable}; then
if type "/opt/homebrew/bin/swiftlint" > /dev/null 2>&1; then
## format autocorrect
/opt/homebrew/bin/swiftlint --fix --format --config .swiftlint.yml
## format check
/opt/homebrew/bin/swiftlint
elif type "/usr/local/bin/swiftlint" > /dev/null 2>&1; then
## format autocorrect
/usr/local/bin/swiftlint --fix --format --config .swiftlint.yml
## format check
/usr/local/bin/swiftlint
else
echo "swiftlint is not installed."
fi
fi
.swiftlint.ymlをプロジェクトのルートに作成
最低限のオプションを設定
※ 1ファイルが大きく、メソッドの中も記述が多く行数の警告やエラーを意図的に無効にしている設定です。
# document: https://github.com/realm/SwiftLint
- cyclomatic_complexity
- function_body_length # メソッドの行数超過
- file_length # ファイルの行数超過
- type_body_length # コードの行数超過
# 無効にするルール
disabled_rules:
type_name:
min_length: 3
max_length: 40
identifier_name:
min_length: # only min_length
error: 2 # only error
excluded: # excluded via string array
- id
- URL
- x
- y
- vc
- on
MacOS $ sw_vers;xcodebuild -version;swift --version
ProductName: macOS
ProductVersion: 12.2.1
BuildVersion: 21D62
Xcode 13.2.1
Build version 13C100
swift-driver version: 1.26.21 Apple Swift version 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)
Target: x86_64-apple-macosx12.0