iOS
Swift
Carthage

[Carthage] Cartfile.resolvedに変更がある時だけcopy-frameworksを実行する設定

Carthageのcopy-frameworksは少し時間がかかる処理なので、
Cartfile.resolvedに変更がある時にだけ実行するスクリプトをメモっておこうかと。

#! bin/sh

set -e

target_dir="${TARGET_BUILD_DIR}"
mkdir -p $target_dir

source=${SRCROOT}/Cartfile.resolved
target=${target_dir}/Cartfile.resolved

if ! diff ${source} ${target} &>/dev/null; then
/usr/local/bin/carthage copy-frameworks
fi

cp ${source} ${target}

Screen Shot 2018-03-16 at 12.43.39.png

スクリプトの中身は、
ビルド時にターゲットディレクトリにCarthage.resolvedをコピーしておき、
ビルドするたびにdiffを取り、差分があればcopy-frameworksを実行する。というものです。

でも、期待した動作になるかどうかはユースケース次第なので参考までにどうぞ〜