iOSアプリの開発中に、しばしば特定用途向けのビルドを作成するのですが、後で端末にインストールされたアプリを見た時に「あれ?これは何用にビルドした奴だっけ?」となることがあります。
そこでJenkinsでiOSのアプリをビルドする直前に、バージョン番号の末尾に任意の文字列を追加するようにInfo.plistを書き換えるシェルスクリプトを考えました。
これをビルド前に実行すれば「1.20.0」などのバージョン番号の末尾に「1.20.0-Debug」のように文字列を追加できます。
INFO_PLIST="MyProject/Info.plist"
VERSION_SUFFIX="-Debug"
ORIG_VERSION=`xmllint --xpath '/plist/dict/key[text()="CFBundleShortVersionString"]/following-sibling::string[position()=1]/text()' "${INFO_PLIST}"`
NEW_VERSION="${ORIG_VERSION}${VERSION_SUFFIX}"
plutil -replace 'CFBundleShortVersionString' -string "${NEW_VERSION}" "${INFO_PLIST}"
INFO_PLIST
は各自の環境に合わせて変更してください。
VERSION_SUFFIX
にバージョンの末尾に追加する文字列を指定します。パラメータビルドでパラメータとして与えてあげるのも便利です。