3
2

More than 1 year has passed since last update.

【Swift】SwiftLintをSwiftPMで管理する

Last updated at Posted at 2023-01-13

はじめに

昨日はSwiftFormatをSwiftPMで管理するについて書きました。

今日はSwiftLintをSwiftPMで管理できるようにしてみたいと思います。

「swiftpm-sample」というプロジェクトを作成しました。
ここにSwiftLintをいれてみます。
スクリーンショット 2023-01-13 21.33.23.png

やりかた

各種ファイルを設定

swiftpm-sampleに移動します。

ターミナル
cd /Users/miyamototaishin/Desktop/swiftpm-sample

スクリーンショット 2023-01-13 21.40.17.png

BuildToolsというフォルダを作成します。

ターミナル
mkdir BuildTools

スクリーンショット 2023-01-13 21.41.32.png

BuildToolsに移動します。

ターミナル
cd BuildTools

スクリーンショット 2023-01-13 21.41.50.png

Package.swiftを作成します。

ターミナル
touch Package.swift

スクリーンショット 2023-01-13 21.42.14.png

Empty.swiftを作成します。

ターミナル
touch Empty.swift

スクリーンショット 2023-01-13 21.42.46.png

Package.swiftを開きます。

ターミナル
open Package.swift

スクリーンショット 2023-01-13 21.43.29.png

Package.swiftに以下をコピペします。

Package.swift
// swift-tools-version: 5.6
import PackageDescription

let package = Package(
    name: "BuildTools",
    dependencies: [
        .package(url: "https://github.com/realm/SwiftLint.git", branch: "main")
    ],
    targets: [.target(name: "BuildTools", path: "")]
)

ディレクトリを1つ上の階層に移動します。

ターミナル
cd ..

スクリーンショット 2023-01-13 21.45.23.png

.swiftlint.ymlを作成します。

ターミナル
touch .swiftlint.yml

スクリーンショット 2023-01-13 21.55.27.png

.swiftlint.ymlを開きます。

ターミナル
open .swiftlint.yml

スクリーンショット 2023-01-13 21.55.44.png

.swiftlint.ymlを編集します
他にもたくさんルールがあるので公式のルール一覧を見てください

.swiftlint.yml
# チェック対象ファイル
included:
- ${TARGET_NAME}

Run Scriptを作成

プロジェクトをダブルタップで開きます。
スクリーンショット 2023-01-13 21.57.46.png

① プロジェクトを選択します
② ターゲットを選択します
③ 「Build Phases」を選択します
④ 「+」を選択します
スクリーンショット 2023-01-13 21.59.06.png

⑤ 「New Run Script Phase」を選択します
スクリーンショット 2023-01-13 22.00.46.png

追加された「Run Script」に以下のスクリプトをコピペします。

cd BuildTools

xcrun --sdk macosx swift build -c release

スクリーンショット 2023-01-15 20.47.02.png

先ほどと同じ手順でRun Scriptを作成します。
作成したRun Scriptに以下のスクリプトをコピペします。

cd BuildTools

xcrun --sdk macosx swift build -c release \
--package-path .build/checkouts/SwiftLint \
--product swiftlint

.build/checkouts/SwiftLint/.build/release/swiftlint lint --config $SRCROOT/.swiftlint.yml

スクリーンショット 2023-01-16 20.13.26.png

ビルド

ビルドします。
スクリーンショット 2023-01-13 22.48.09.png

エラー出ました!!!
エラーが出てこんなに嬉しいことは他にないですね!
スクリーンショット 2023-01-13 22.42.05.png

詰まった点

branch指定でmainを選択しないとなぜかできない

⭕️ .package(url: "https://github.com/realm/SwiftLint.git", branch: "main")
 .package(url: "https://github.com/realm/SwiftLint.git", version: "0.50.0")
 .package(url: "https://github.com/realm/SwiftLint.git", from: "0.50.0")

参考記事

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2