Auto-Increment Build Number in Xcode 13

久しぶりにビルドナンバーの自動更新などしようかと思っていたら、Xcode13でInfo.plistがなくなっており、以前から使っていたやり方が使えなくなっていました。ぐぐっても直接的な解答がみつからなかったので、メモ。要点は、agvtoolコマンドを使うということでした。

対処としては、Build PhaseにRun Scriptを追加し、以下のスクリプトを設定しました。

NEW_VERSION=$(git rev-list HEAD | wc -l | tr -d ' ')
agvtool new-version ${NEW_VERSION}

gitのコミット数で更新するようになっています。


16進数が好みなので、実際は以下にしています。

NEW_VERSION=$(git rev-list HEAD | wc -l | tr -d ' ' | xargs -n1 printf '%X')
if [ $(git diff HEAD --stat | wc -l | tr -d ' ') -ne 0 ]; then
NEW_VERSION=$(expr ${NEW_VERSION} + 1)
fi
agvtool new-version ${NEW_VERSION}