【Xcode】開発環境(ReleaseとDebug)モード(Build Configuration)の切り替え方法

この記事からわかること
- Xcodeで開発環境を切り替える方法
- ReleaseモードとDebugモードとは?
- Active Compilation Conditionsの設定方法と使い方
index
[open]
\ アプリをリリースしました /
参考文献: What are Debug and Release Modes in Xcode? How to Check App is Running in Debug Mode?
アプリ開発の際にテスト用データやデバッグ機能などを実装してもリリース時には不要になります。Xcodeでは簡単にモードを切り替えることで開発と本番の環境を再現でき、分割させた管理が可能になっています。
Xcodeの2つのモード
iOSアプリ開発を行う上で使用するXcodeには内部的にReleaseとDebugの2つのモード(正確にはBuild Configuration)に切り替えることができるようになっています。基本的にはDebugモードは開発中、ReleaseモードはApp StoreやTestFlightに使用され、デフォルトでは開発者は特に意識することなくビルドする際に自動(スキームで設定)で切り替わるように設定されています。
- Debug・・・最適化されずデバッグログが出力される
- Release・・・最適化されデバッグログが出力されない
Xcodeではこの2つのモードを手動で切り替えてビルドすることも可能になっています。
モードの切り替え方
Xcode上部メニューの「Product」>「Scheme」>「Edit Scheme」(⌘+<)から開発中のビルド(Run)やアーカイブ(App Store Connectへのアップロード)時のモードをそれぞれ変更することができます。

デフォルトでは以下のように「Profile」と「Archive」のみがReleaseになっています。これはApp Storeなどにアップロードするためのビルドを生成するのでパフォーマンスが最適化されたものをリリースできるようにするためです。

実行しているモードの確認方法
実行モードを切り替えられることが分かったので正常に切り替えることができているか確認してみます。コードから確認するにはコンパイラ制御ステートメントを使用することで処理を分岐させることが可能です。
おすすめ記事:【Swift】#ifや#availableとは?コンパイラ制御ステートメントの使い方!
Active Compilation Conditions - DEBUGフラグ
Xcodeではデバッグモードかどうかを識別するフラグであるDEBUG
が用意されています。 このフラグは「Project」>「Build Settings」>「Swift Compiler - Custom Flags」>「Active Compilation Conditions」で設定されています。

リリースモードの方は空白になっていますが任意の値(RELEASEなど)を入れるとコードから使用できるようになります。
ちなみにAndroidでは以下の方法で環境を変更できます。
Build Configurationの追加方法
Build Configurationを追加するには「PROJECT」>「Info」>「Configurations」で「+」をクリックし、追加したい環境の役割に応じた「Duplicate "XXXXX" Configuration」を選択します。例えばStaging環境を追加したい場合は「Duplicate "Debug" Configuration」を選択して追加し、環境名を「Staging」などにすれば完了です。

必要であれば「Active Compilation Conditions」フラグを追加したり専用のスキームを追加しておくと開発がスムーズになります。以下記事では環境ごとにバンドルIDやアプリ名を自動で変更する方法を紹介しています。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。