こんにちは、 株式会社ジェネシックス の徐 廷(@TonnyXu)です。 iPhoneの共通モジュールのベストプラクティスに関してです。
文章が長くなりますので、5回に分けてお届けします。
今回は、3回目となります。
その1
■ 共通プロジェクトを作る
その2
■ コンシューマPJを作る
■ コンシューマPJで共通プロジェクトを引用
その3
■ 引用後のコンシューマPJでの必須設定
その4
■ コンシューマPJを実行する
その5
■ さらに
・ 共通プロジェクトに単体テストを追加
・ オープンソースライブラリを作る
■ 引用後のコンシューマPJでの必須設定
必須となる設定は三つあります。- 共通プロジェクトを利用するために、ヘッダーファイルの置き場所を指定。
- コンシューマPJをコンパイルする前に、まず共通モジュールをまずコンパイルするように設定。いわゆる依存関係を設定。
- コンシューマPJをリンクする時、共通モジュールをリンク。
まず、1番目の設定を行いましょう。プロジェクトのルートノードCommonConsumerをダブルクリックすると、下図の設定画面が出てきます。

図15:CommonConsumerのプロジェクト設定画面
図15画面上にある検索ボックスに"header"を入力してみましょう。絞り込んだ設定項目画面で Header Search Path項目の右にある空セルをダブルクリックして、"../Common"を入力してください。Recursivelyチェックボックスはそのままでかまいません。完了したら下図の画面と同じかどうかを確認してください。

図16:Header Search Pathの値
図16に、相対Pathを記入しています。画面のOKを押して、次の設定へ行きましょう。
次はプロジェクトの依存関係を設定します。左側のTargetsノードをダブルクリックしてください。

図17:Targetの設定画面(図15とほぼ同じ、ただし、少し違いがあります)
図17のGeneralタブを選択して、Direct Dependenciesの下にある「+」ボタンを押してください。下記の画面が出てきたら、Commonを選択してください。

図18:依存先を選択
これで、コンパイルができるはずです。コンパイルすると、下図のような画面が出てきます。リストの一番上にCommonプロジェクトをコンパイルしたことが示されています。

図19:依存関係を設定後、コンパイル結果画面
最後もう一つの設定が不可欠です。コンパイル後、共通モジュールをコンシューマPJにリンクします。コンシューマPJのCommonプロジェクトノードの下に表示される「libCommon.a」をドラッグして、「targets」の「CommonConsumer」の「Link Binary with Libraries」にドロップしてください。結果は下図の画面のようになります。

図20:共通モジュールのバイナリファイルをリンクする
ここまでで、コンシューマPJでの共通モジュールの設定が終わりました。続いて、コンシューマPJで共通モジュールのクラスを利用してみましょう。

