アプリのビルド設定をいくつか用意して簡単に切り替えたい、という状況がときどきあります。たとえば、開発用サーバに接続するデバッグアプリと本番サーバに接続するデバッグアプリを使い分けたい場合です。
そんなときは Xcode のスキームを使うと便利です。今回は Sample.app を作成し、普通のデバッグビルドに加えて、コンパイル時に MY_DEBUG
マクロが定義されるデバッグビルドを実行できるようにしてみます。
1. プロジェクトのコンフィグを作る
コンフィグは、ビルドに関する様々な設定(ターゲット OS や使用するコンパイラ、リンカオプションなど)をまとめたものです。既存のデバッグ用コンフィグを複製して新しいコンフィグを用意してみましょう。
Project Navigator (Xcode の左ペインのファイルツリー)からプロジェクトを選択します。 Info タブを開くとプロジェクトの情報が表示されます。 Configurations の "Debug" を複製して名前を "Debug (MY_DEBUG)" とします。
2. ビルド設定にマクロの定義を追加する
Build Settings タブを開き、 Preprocessor Macros の設定を探します。先ほど作った "Debug (MY_DEBUG)" に MY_DEBUG
マクロを追加します。
3. 新しいスキームを作りビルド設定を変える
新しいスキームを作り、デバッグビルドに "Debug (MY_DEBUG)" コンフィグを使うように設定してみましょう。
ツールバーの Scheme ボタンをクリックして New Scheme... を選びます。名前を "Sample (MY_DEBUG)" とします(補足:スキーム名にカンマなどを含めるとビルドに失敗することがあります。カッコ以外の記号は使わないほうが無難です)。
Scheme ボタンから Edit Scheme… を選び、 "Sample (MY_DEBUG)" を編集します。左のリストから Run Sample.app を選び、 Info タブの Build Configuration を "Debug (MY_DEBUG)" に変更します。
4. スキームを共有する
Scheme ボタンから Manage Schemes… を選び、共有したいスキームの Shared チェックボックスをオンにします。チェックボックスがオンのスキームはファイルに書き出され、他の開発者と共有できるようになります。ファイルは Sample.xcodeproj/xcshareddata/xcschemes/${スキーム名}.xcscheme
にあるので、バージョン管理システムに追加しておきましょう。
5. できあがり
Scheme ボタンから "Sample" か "Sample (MY_DEBUG)" を選ぶと MY_DEBUG
マクロの有無が切り替わります。
コンフィグを変えるだけでなく、デバッガを使い分けたりビルドの前処理スクリプトを走らせたりと、色々なスキームを作ってみると便利かもしれません。