LoginSignup
31
23

More than 5 years have passed since last update.

Xcode7 でスキームの設定をする

Posted at

はじめに

code
ifdef DEBUG

これを使って、開発時だけ使用するコードを書く人は多いと思います。
今回のお話は、この DEBUG の部分を自由に追加したり、
その追加したものを スキーム で切り替えられるようにしましょう、というお話です。

※本記事は Xcode7.2 で実際に行ったことを書いています

ゴール

code
#ifdef DEBUG
    NSLog(@"スキームは DEBUG です。");
#elif MYDEBUG
    NSLog(@"スキームは MYDEBUG です。");
#else
    NSLog(@"スキームは DEBUG と MYDEBUG 以外です。");
#endif

このように NSLog の出力を Xcode のスキームで 切り替えられるようにすることをゴールとします。

Xcode のスキームで切り替えというのは下の図の部分のハイライトされている部分の切り替えのことです
ScreenShot_3_highlight.png

では、順を追って実際にやってみましょう。

1.プロジェクトを作る

Single View Application で SchemeSample という名前でプロジェクトを作りました。
作った直後の画面はこんな感じだと思います。
ScreenShot_3_original.png

2.Configurations に MyDebug を追加する

ScreenShot_4_highlight.png

2.1.Configurations の 「+」 から Duplicate "Debug" Configuration を選びます

ScreenShot_5.png

2.2.名前を MyDebug にします

ScreenShot_5_input.png

MyDebugというのが出来上がったと思います。
ScreenShot_6_highlight_anotation.png

3.スキームに MyDebug を追加します

3.1.スキームを編集するために、スキームの【Manage Schemes】を選びます

ScreenShot_7_highlight_anotation.png

開くと以下のような画面になります。
ScreenShot_7.png

3.2.スキームを追加します

「+」ボタンをクリックすると以下のような画面が出てきます。
ScreenShot_7_subWindow.png

「SchemeSample_MyDebug」と入力します。
ScreenShot_7_subWindow2.png

入力して OK をクリックすると以下のようになると思います。
ScreenShot_8.png

右側の「Shared」にチェックを付けておきます。
最終的には以下のようになります。
ScreenShot_9.png

3.3. Configuration とスキームを関連付けます

作成した 「SchemeSample_MyDebug」というのが出来ているはずなので、
Xcode のスキームのところで、「SchemeSample_MyDebug」を選択します。
ScreenShot_10_highlight_anotation.png

スキームのところをクリックすると以下のような選択画面が出ると思います。
「SchemeSample_MyDebug」を選択します。
ScreenShot_10_subWindow.png

「SchemeSample_MyDebug」を選択後、再びスキームのところをクリックし、「Edit Scheme」を選択します。
ScreenShot_10_subWindow2.png

「Edit Scheme」を選択すると、以下のような画面になると思います。
ScreenShot_10_2.png

Build Configuration というところを変更します。
ScreenShot_10_3_highlight_anotation.png

「MyDebug」を選択します。
ScreenShot_10_4.png

変更後の画面は以下のようになっていると思います。
ScreenShot_11_2.png

変わったところを確認しましょう。
↓の図のようになっていたら Close ボタンで閉じて大丈夫です。
ScreenShot_11_2_highlight_anotation.png
  

ちょっと一休み

ここまで出来たら、スキームによる切り替え自体はできるようになった状態となります。
あとは、ゴールのところに書いてある、【MYDEBUG】というものを用意するだけです。


4.ifdef MYDEBUG で使える【MYDEBUG】を追加する

4.1.作業場所(Target の Build Settings)を開く

ScreenShot_12_highlight_anotation.png

4.2.MYDEBUG=1 を実際に追加する

4.1. の図に書かれている、【ここを編集します】のエリアの DEBUG=1 の辺りをダブルクリックすると、以下のようなウィンドウが出てきます。
ScreenShot_13.png

ウィンドウに最初から書かれている、【DEBUG=1】と【$(inherited)】を削除します。
※選択してウィンドウ下の「ー」をクリックすれば消せます
ScreenShot_13_1_highlight_anotation.png

削除後、「+」をクリックして【MYDEBUG=1】を入力します。
入力後は以下のようになっていると思います。
ScreenShot_13_2.png

これで設定自体は終わりです。
画面は以下のようになっていると思います。
ScreenShot_13_3.png

後は、実際にプログラム側で利用するだけです。

5.実際にプログラム側で利用する

どこでもいいのですが、手っ取り早く、ViewController.m の viewDidload に、
ゴールのところに書いていたコードを書いてみましょう。
ScreenShot_14.png

実行してみましょう。
ログはどのように表示されたでしょうか?
ScreenShot_15_highlight_anotation.png

↑のように狙い通りのログが出たでしょうか?
狙い通りのログが出せなかった人は、途中で何らかの設定を間違えているか、現在選択しているスキームを確認してみてください。

ちなみに・・・

実際のアプリ開発では、API の接続先や、ログの出力有無やフォーマットを切り替える必要があると思うので、↓の画像のように、Debug, 任意のスキーム, Release 等で分けておいて、スキームで管理できるようにしておくと便利だと思います。
ScreenShot_16.png

SchemeSample_Debug で実行した場合
ScreenShot_17.png

SchemeSample_Release で実行した場合
ScreenShot_18.png

まとめ

自分の場合、今までスキームの設定が必要なほどのアプリ開発になったことがなかったため、割りと最近、初めてこの辺りの設定をしました。

できるようになると割りと簡単な話なのですが、【やったことがない状態】だった立場からすると、【どこにどう設定すればいいのか?】というのが手探り状態で、記事を検索しても古めの記事しかなかったので、Xcode7 での設定方法を、自分への備忘録の1つとして記事にさせていただきました。

とっかかりに苦しんでいる、ハマっている、うまく行かない人の助けになればと思います。


参考にした記事はこちらです。
ほぼ内容も同じです。
参考に試してできた手順をこの記事に書いたようなものです。

31
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
23