💭

Xcodeビルド時にswift-formatを自動実行

2024/08/16に公開

はじめに

Xcodeでビルドする時にapple純正のコード整形ツールapple/swift-fomartを自動で実行し、結果をイシューナビゲーターに表示する方法を説明します!
私の環境ではつまづいた部分があったので、その点も説明します。

筆者について

パスワード管理アプリをリリースしました🚀🚀🚀
大切な情報を安全に、そして簡単に管理できるアプリです。
普段パスワードを忘れがちな方、セキュリティを強化したい方にぴったりのツールです。
ぜひお試しください!
https://apps.apple.com/jp/app/anchor-パスワード管理/id6504424272

環境

  • Xcode15.2

手順

swift-formatをインストール

Homebrewでインストール

brew install swift-format

Run Script Phaseに処理を追加

PROJECCT > TARGETS > "project file" > Build Phases > + > New Run Script Phase

Run Scriptの項目が追加されます。
ここに以下の処理を追加します。

# swift-format
if which swift-format >/dev/null; then
    swift-format lint --recursive .
else
    echo "warning: swift-format not installed"
fi

Based on dependencies analysisのチェックは外しておきます。

さて、ここで一旦ビルドしてみましょう。
環境によっては期待通りイシューナビゲーターに警告が表示されるかもしれません。
表示された方はここで終わりです。
お疲れ様です🍵

私の環境はというと。。

イシューナビゲーターに警告が表示されませんでした。。

色々調べたところENABLE_USER_SCRIPT_SANDBOXINGの設定が悪さをしていることがわかりました。

ENABLE_USER_SCRIPT_SANDBOXINGを無効

PROJECCT > TARGETS > "project file" > Build Settings > Build Options > User Script Sandboxing を"NO"に変更

ではもう一度ビルドしてみましょう。
すると。。

無事にイシューナビゲーターに警告が表示されました!

Discussion