XCode
XCodeの場合はTargetを分ける方法とConfigurationsを分ける方法の二つの方法がある。
◎ Configurationsを分ける方法
まず、プロジェクトのinfoタブでConfigurationsというところで追加させる。ReleaseとDebugがDefaultされてあるのでその中にStagingを入れてみる。
+
を押し、DebugかReleaseをduplicateして名前を変える。
続いてTargetsのBuildSettingsの+
を押し、User-DefinedにBUNDLE_DISPLAY_NAME_PREFIXとBUNDLE_IDENTIFIER_SUFFIXを追加する。そしてActiveConpilationConditionsも下のように変える。BUNDLE_DISPLAY_NAME_PREFIXはアプリ名を分けるために追加、BUNDLE_IDENTIFIER_SUFFIXはアプリのBundleIdをそれぞれ分けるために追加する。また、ActiveConpilationConditionsはそれぞれのビルドの機能を分岐させるために追加する。
次はschemeを分けて管理する。左上のschemeのところでNew Scheme
を押してDebugとStagingのschemeを追加する。また、Edit Scheme
でRelease,Debug,Stagingのそれぞれの設定をする。
そこまでできたらTargetsのinfoでBundle identifierとBundle nameを変更する。Bundle identifierは$(PRODUCT_BUNDLE_IDENTIFIER)の後ろに$(BUNDLE_IDENTIFIER_SUFFIX)を、Bundle nameは$(PRODUCT_NAME)の前に$(BUNDLE_DISPLAY_NAME_PREFIX)を入れる。
そうすれば下のようにGeneralで変更されたのを確認できる。
それぞれのビルドに機能を分岐させる場合は下のように#if
を使う。#ifのところにさっきのActiveConpilationConditionsに設定したのを入れる。
ビルド別にビルドしてみると、
Release
Debug
Staging
それぞれ違うソースコードが実行されたことをみることができる。
インストールされたデバイスをみたら、
三つのアプリがインストールされる。
◎ Targetを分ける方法
今のTargetをduplicateしてもう一つのTargetを作る。もちろん+
で追加しても良いが、同じソースコードを使うならばduplicateでも全然構わない。作ったら名前を変更し、また自動にinfo.plistファイルも生成されるのでそれのファイル名も変更。その後にGeneralでinfo.plistを選んで設定する。
そしてBuild SettingsでProduct Bundle Identifierを変更すればする。
さっきと同じようにschemeを追加する。
ActiveConpilationConditionsをカスタマイズするが、Targetを間違わないよう気をつける。
さっきの分岐のうえにさらに分岐してみる。
すると、新たのプロジェクトのRelease,Debug,Stagingをそれぞれ使うことができる。
そして、デバイスで確認してみるとまた三つが増えて六つもアプリがインストールされたのを確認できる。