複数人で開発を行っていると、ライブラリの追加やアップデート等でブランチ間のPodfileに差分が生じる事がある。
コードレビュー等のためにブランチ間を行き来していると、XCodeビルドを走らせてからこのようなエラーが出てpod install
が必要と気づく事が多い。
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
できればブランチを切り替えた際必要に応じて自動でpod install
したい。
とか考えてたが、超単純にGitのpost-checkoutでPodfile.lockと${PODS_ROOT}/Manifest.lockのdiffを見ればいいだけだった。
.git/hooks/post-checkout
diff Podfile.lock Pods/Manifest.lock > /dev/null
if [[ $? != 0 ]]; then
echo "Sandbox needs to be updated. Re-installing libraries..."
bundle exec pod install
fi
これでチェックアウト先でpodsの再インストールが必要であればpod install
が開始される。