4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[備忘録]CocoaPodsでSwiftLintを導入したった。

Last updated at Posted at 2023-12-17

環境

Swift: 5.9.2
Xcode: 15.1
Swiftlint: 0.53.0

確認方法

$ xcodebuild -version  //Xcode
$ swift --version      //swift
$ swiftlint --version  //swiftlint

参考ページ

pod initでPodfileを作成します。

$ pod init
以下のファイルが作成されます。

podFileの写真.png

このファイルに以下のような文言を追加します。

スクリーンショット 2023-12-16 23.08.51.png

pod installを実行

pod fileに記述した内容を反映させます。

$ pod install

Podfile.lockのバージョンに従ってプロジェクトの依存関係をインストールします。以下のような結果になるかと思います。

スクリーンショット 2023-12-17 15.39.45.png

もしもプロジェクトを開いている場合は一度閉じて、この白色のファイル(xcworkspaceファイル)を開きます。

スクリーンショット 2023-12-16 23.05.07.png

Xcode上で設定を行う

以下の画像の手順で設定を行います。

スクリーンショット 2023-12-16 23.26.25.png

New Run Script Phase』を開いて、以下をスクリプトとして挿入します。

スクリーンショット 2023-12-16 23.29.56.png

Run script』が追加されるので、以下の文言をスクリプトに記述します。今回はPodsでインストールするため{"${PODS_ROOT}/SwiftLint/swiftlint"}がポイントになってきます。

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

スクリーンショット 2023-12-17 13.20.52.png

もしも、うまく動かない!となったら、、、

公式の引用です。

Xcode15 では、ENABLE_USER_SCRIPT_SANDBOXING ビルド設定のデフォルト値を NO から YES に設定することで大幅な変更が加えられました。 その結果、SwiftLint はファイル権限の欠落に関連するエラーに遭遇します。 これは通常、次のように表示されます: error: Sandbox: swiftlint(19427) deny(1) file-read-data.

User Script Sandboxing』が 『No』 になっているか確認します。

スクリーンショット 2023-12-17 0.28.21.png

shunsukeさんの記事を参考にさせていただいました!詳しく知りたい方は是非参考にしてください!

ここまでできたら、一旦Buildして確認してみます。

スクリーンショット 2023-12-17 13.28.26.png

怒られていますね!!

  • 型名違反(アンダースコアを型名で使用している)
  • 無駄な改行

この二つで怒られてしまったので、無事SwiftLintが導入できていることが確認されました!

YAMLファイルを作成し、SwiftLintの細かなルールを設定を行う

このファイルに対して、ルールの設定をしてみます!
今回はSwiftLintのデフォルト設定となっている、型名の指定を無効化させます。完成イメージは以下のような感じです。型名にアンダースコアをつけると怒られていましたが、これを怒られないようにします。

スクリーンショット 2023-12-17 15.15.48.png

まず、『YAMLファイル』を作成します!

プロジェクトのカレントディレクトリをYMALファイルを作成したいディレクトリまで移動させます(cdコマンドを使う)移動したら、以下のコマンドを叩き、YAMLファイルを作成します。(プロジェクトファイルのディレクトリに移動してから行なってください。)

$ touch .swiftLint.yml

すると、以下の半透明のアイコン(隠しファイル)がプロジェクトファイルに追加されます。

隠しファイルの表示・非表示 com + shif + .

スクリーンショット 2023-12-17 14.39.33.png

この『.swiftLint.yml』にルールを記述し、ルールを変更していきます。追加する内容は以下の通りです。

スクリーンショット 2023-12-17 15.11.13 (1).png

ルールの特徴2つ

  • デフォルト設定として有効になっているものを無効化させる
  • デフォルト設定として無効になっているものを有効化させる

今回は有効にされていたものを無効化させましたが、逆のパターンもあります。より理解を深めていけるよう、色々試していきたいと思います。

公式ページの以下の部分にルール設定について記載があるので、参考にしてみてください。

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?