やりたいこと
CocoaPodsがビルド時に「pod install
しないとだめだよ」とエラー吐いてくれるのが便利なので、Carthageでも同じことをやりたい。
実現方法
Carthage公式のworkflowsというリポジトリに carthage-verify
というスクリプトがあるので、そちらを使います。
手順
まずは carthage-verify
をcloneするなりDownloadするなりして、手元に持ってきます。ディレクトリ構成としては、下記のように scripts
ディレクトリを作って、その中に入れてあげます。
. ├── sample.xcodeproj ├── sample.xcworkspace └── scripts └── carthage-verify <- [コレ!]
次にBuild PhasesにScript Phaseを追加していきます。こんな感じです。
下記はコピペ用のスクリプトです。
./scripts/carthage-verify if [ $? != 0 ] ; then # print error to STDERR echo "error: The sandbox is not in sync with the Cartfile.resolved. Run 'carthage bootstrap -- platform iOS --use-ssh --no-use-binaries --cache-builds' or update your Carthage installation." >&2 exit 1 fi
結果
わざと手元の ./Carthage
内を古い状態にして、ビルドしてみると、
このようにちゃんとエラーを出してくれます。良かったですね。
参考文献
こちらのスライドを参考にしました。