会社のプロジェクトで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でのバージョニングの決定版になるかも