2013年10月5日土曜日

Build番号の自動インクリメント



Build番号の自動インクリメントを仕掛けました。

このページに画面キャプチャー付きで手順が載っており、そのとおりに行えば設定できます。


・ProjectのBuild PhaseにRun Sricptを追加する。
・Run Sricptは末尾に追加され、ビルドの最後で実行される。(ドラッグで順序を変更可能)
・Run Scriptニシェルスクリプトを登録する。

Xcode5ではBuild Phase追加はメニューから行います。

"How to auto-increment Bundle Version in Xcode 4?"ではスクリプトファイルを保存し、それを実行するため、プロジェクトを他の環境でビルドする場合は各々の環境にスクリプトファイルを保存する必要があります。それが面倒な場合はRun Scriptに直接スクリプトを書くこともできます。


buildPlist=${INFOPLIST_FILE}
newVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$buildPlist" | /usr/bin/perl -pe 's/(\d+\.\d+\.)(\d+)/$1.($2+1)/eg'`

この場合はVersion、Build ともに数字3つのをピリオドで区切ったものとなります。
例:Version=1.1.0 、Build=1.1.123

Versionを 1.1.0 、Buildを 1.1.0.123 のように設定する場合はPerlの正規表現を次のように変更します。("\d+\."を追加)
's/(\d+\.\d+\.\d+\.)(\d+)/$1.($2+1)/eg'

TARGETS/Generalの設定は次のようになります。

プログラム中で値を取得する例
(リリース時はVersion、デバッグ時はBuild):
#ifdef DEBUG
    NSString *buildNumber = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
#else
    NSString *buildNumber = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
#endif

0 件のコメント: