Xcodeビルド環境を切り替える方法

先日,改修を担当したiOSアプリのXcodeプロジェクト設定が非常にわかりずらいものでした.(PROJECT – Configurations と TARGETS が複数存在し,それらを切り替える Scheme が定義されていなかった)

改めてアプリの参照サーバを切り替える方法など,どのようなプロジェクト設定にしておけば,わかりやすいのか?考えてみたのですが,その際とても参考になった資料をメモしておきます.

参考: [Xcode] ビルド環境を切り替えるためにSchemeを追加する

参考: [Xcode] Xcode 8.0から「Active Compilation Conditions」が追加されて#if, #elseif, #else, #endifによる分岐設定がちょっと楽になってます

プロジェクトの設定項目

PROJECT
Build Settings
Apple Clang - Preprocessing
Preprocessor Macros

設定例:MYDEBUG=1
Swift Compiler - Custom Flags
Active Compilation Conditions

設定例:MYDEBUG
TARGETS
Build Settings
Swift Compiler - Custom Flags
Other Swift Flags

設定例:-D MYDEBUG

ソースコードでは以下のように切り替えることが可能です.

1
2
3
4
5
6
7
8
9
        #if DEBUG
            print("デバッグ環境")
        #elseif STUB
            print("スタブ環境")
        #elseif MYDEBUG
            print("MYDebug環境")
        #else
            print("その他環境")
        #endif