🛠️
SwiftLintをSPMで入れて実行する
- Package Dependencies に
https://github.com/realm/SwiftLint.git
を追加する - プロジェクトのターゲットの Build Phases を開いて、Run Scriptを追加する
- Based on dependenciy analysis にチェックを入れる
- 下記のスクリプトを記入
# build swiftlint xcrun --sdk macosx swift build -c release \ --package-path ${BUILD_DIR%Build/*}SourcePackages/checkouts/SwiftLint \ --product swiftlint # run swiftlint if [ ${XCODE_BUILD_WARNING_AS_ERROR} = "YES" ]; then ${BUILD_DIR%Build/*}SourcePackages/checkouts/SwiftLint/.build/release/swiftlint lint --strict else ${BUILD_DIR%Build/*}SourcePackages/checkouts/SwiftLint/.build/release/swiftlint lint fi
-
.swiftlint.yml
を.xcodeproj
や.xcworkspace
と同じ階層に置く
一度目の実行時はswiftlint
をビルドするので時間がかかりますが、以降は速いです。
Discussion
上記のコードの場合、常にビルドしてしまっているので、2回目以降のビルドでもビルドで2~3秒ほどスクリプトに時間がかかってしまいます。

以下のように記述して、一度ビルド後は実行ファイルから実行するように記述すると0.3秒ほどでスクリプトが完了するのですが、いかがでしょうか。🙇♂️