会社のプロジェクトでCircle CIなどのCIサービスは使えない、
でもiOSアプリのビルド番号を自動採番したい!ってケースがあったので、
scriptを書いてみました。
El CapitanからPlistBuddyが使えなくなったため、
defaultsコマンドとplutilを使っています。
El CapitanからPlistBuddyが使えなくなったというのは私の勘違いでした。。。
10.11.5で確認したところ、/usr/libexec/PlistBuddyに存在しています。
ご指摘くださった@takasekさん、ありがとうございます!
やり方
以下のscriptのpath/to/Infoとpath/to/Info.plistを自分のプロジェクト用に
書き換えて、Xcodeのrun scriptに追加するだけです。
1行目のpath/to/InfoもInfo.plistへのpathなのですが、拡張子は不要です。
build_number=$(defaults read "path/to/Info" CFBundleVersion)
build_number=$((build_number + 1))
/usr/bin/plutil -replace CFBundleVersion -string $build_number "path/to/Info.plist"
今まで通り、PlistBuddyを使って以下のようにも記述できます。(10.11.5で動作確認済)
build_number=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "path/to/Info.plist")
build_number=$(($build_number + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $build_number" "path/to/Info.plist"
その他
かっこよくバージョニングしたいならこちらのほうが良いかもしれません。
これがXcodeでのバージョニングの決定版になるかも