遅ればせながら、あけましておめでとうございます、セイカイです。
今年はキャッチー記事を書かないとねと思いつつ、新年一発目からすっげー小ネタになりますがお許し下さい。

開発・STG・本番ごとのBundle IDの変更は手間

iPhoneアプリの開発でAPI等サーバーサイドが開発/STG/本番と分かれている様なケースってありますよね。
この場合、端末内にそれぞれのアプリがインストールされていると確認が楽ですね。

ただし、通常同一のBundle IDですと同じアプリになっていまします。

毎回Bundle IDを変更するのも手間ですねってことで手順化することを考えてみます。

手順

ビルドはxcodebuildコマンドを使います。
Bundle IDはinfo.plistで制御されるので処理は下記の様になります。

  1. Info.plistの書き換え
  2. xcodebuildでビルド
  3. xcrunでパッケージング
  4. Info.plistを元に戻す

コード

とりあえずざっくりですがコードを書いてみます。
今回は固定でBuindle IDのプレフィックス部分に「.adhoc」とい文字を足す様にしています。

はい簡単ですね。
もっと汎用的にしたい場合は、一部の値を引数として処理する等にすれば良いと思います。

その他

プリプロセッサマクロの書き分けは下記等に記載されているようにGCC_PREPROCESSOR_DEFINITIONSを設定してやれば良いでしょう。

http://stackoverflow.com/questions/2708380/xcodebuild-how-to-define-preprocessor-macro

まとめ

ちょっとした処理でも繰り返し行うようなものは手順化しておくと楽が出来るかと思います。
日々の業務の中で気を使えると良いかもしれませんね。

あわせて読みたい記事