0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Xcode】SwiftLint導入したのにnot installedになったら

Posted at

久々に投稿

最近、XcodeやSwiftを触る機会が多いため、
静的解析としてSwiftLintを導入したときに少しハマったことと解決策をここにメモ。

環境情報

  • PC:M2 Macbook
  • OSバージョン:MacOS 26
  • Xcodeバージョン:Xcode 26
    ※当時OSとXcodeはベータ版

導入手順

まずはSwiftLint導入でやったことから。

①ターミナルを開き↓のコマンドでSwiftLintをインストール。

brew install swiftlint

②Xcodeプロジェクトの
Build Phases > New Run Script Phasesの+ボタンから、
Run Scriptを新規作成して以下スクリプトを記載。

if which swiftlint >/dev/null; then
    swiftlint
else
    echo "warning: SwiftLint not installed."
fi

これで一旦完了。

ハマったこと

ビルド実行すると、
warning: SwiftLint not installed.のエラーが。

どうやら導入の②で書いたスクリプトのエラーに流れてるっぽい。

原因

でもbrew install swiftlintは実行したし、
ターミナルでswiftlint --version実行してもちゃんとバージョン情報は出てくる。

そこで②のスクリプトの

which swiftlint

をターミナルで実行したところ、

/opt/homebrew/bin/

と出力された。
調べてみると、Xcodeから実行できるSwiftLintのパスは/usr/local/bin/であり、
/opt/homebrew/bin/だと実行できないためスクリプトの判定がFalseになってた模様。

参考:
https://github.com/realm/SwiftLint/issues/2992

解決策

以下でシンボリックリンクを作成し、/usr/local/bin/でSwiftLintにアクセスできるようにした。

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

参考:
https://github.com/realm/SwiftLint/issues/2992#issuecomment-1108712744

これによりビルド時にエラーが消え、
空白行が自動的にトルツメされてLintが正常実行されることを確認し完了。

余談

どうやらAppleシリコンチップ製Macで発生する模様。
M1、M2などではbrew install swiftlint実施時に/opt/homebrew/bin/にでSwiftLintが作成されるため、上記解決手順が必要だが、
Intelチップ製だと/usr/local/bin/にSwiftLintが作成されるため発生しないらしい。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?