Xcode5でiOS用スタティックライブラリのリンクを設定する

はじめに

この記事にはXcode5(正確には5.0.1)でiOS用スタティックライブラリを追加する操作手順についてまとめています。XcodeがApple製品である以上、バージョンアップがかかったら差分がないか確認しないと恐ろしいので、「Xcodeを日常的に使っていれば、その操作は当然だ」という記述もあえて含めています。必要な場所のみ読み進めていただけると幸いです。

この記事に関連するために、事前にXcode5の振る舞いとして知っておくべき点を以下に示します。

  • Xcodeの補完機能"Code Sence"はインデックスファイルを参照するが、このファイルはXcodeが起動した際に更新される
  • Xcodeを開いているときに、Xcodeプロジェクトを他のXcodeプロジェクトにドラッグ&ドロップすると入れ子にできる

操作手順の一覧

大まかな操作手順は以下の通りです。

  1. ワークスペースの作成
  2. スタティックライブラリ用プロジェクトの作成
  3. スタティックライブラリの実装
  4. アプリケーション用プロジェクトの作成
  5. アプリケーション用プロジェクトとスタティックライブラリ用プロジェクトの親子関係を設定
  6. ワークスペースから重複しているスタティックライブラリ用プロジェクトを除外
  7. アプリケーション用プロジェクトでビルド設定を変更
  8. アプリケーション用プロジェクトでスタティックライブラリのリンク設定
  9. アプリケーション用プロジェクトでビルド
  10. Xcodeの再起動
  11. Xcodeの補完機能の動作確認
  12. アプリケーションの実行

画像を交えながら解説します。

1. ワークスペースの作成

ワークスペースを作成します。Xcodeのメニューから実行するのが楽だと思います。

images/fig011.png

2. スタティックライブラリ用プロジェクトの作成

ここでは、まずはスタティックライブラリ用のプロジェクトを作ります。作成するために、Xcodeの左下にあるプラス記号のアイコンを押します。すると一覧が表示され、"New Project…"という項目があるのでそれを選びます。Xcodeプロジェクトを作成する画面に移ります。

images/fig03.png

images/fig04.png

images/fig05.png

3. スタティックライブラリの実装

ここでは動作確認用にメソッドを追加して実装を完了したものとします。実装したメソッドにはNSLogでコンソールにログを出すよう書いています。仮に、実装中にヘッダーファイルを増やしたならば、"Build Phases"の"Copy Files"でそのファイルを追加します。

images/fig06.png

images/fig07.png

4. アプリケーション用プロジェクトの作成

ここでは、Single View Applicationを利用してプロジェクトを作ります。

images/fig08.png

images/fig09.png

5. アプリケーション用プロジェクトとスタティックライブラリ用プロジェクトの親子関係を設定

プロジェクト同士の親子関係を設定します。スタティックライブラリ用プロジェクトをアプリケーション用プロジェクトにドラッグ&ドロップします。

images/fig10.png

6. ワークスペースから重複しているスタティックライブラリ用プロジェクトを除外

先ほどの手順で、最初に作ったスタティックライブラリ用プロジェクトがワークスペース内で必要以上に重複しているので、これを除外します。プロジェクトの参照設定のみを消すために"Remove Reference"を選択します。

images/fig11.png

images/fig12.png

7. アプリケーション用プロジェクトでビルド設定を変更

アプリケーション用プロジェクトで"Build Settings"を開きます

images/fig13.png

項目がたくさんありますが、変更を加えるのは User Header Search Paths です。項目を絞り込むため、検索バーに"USE_HEADER_"と入力します。

images/fig14.png

USer Header Search Pathsをダブルクリックして、 $(BUILT_PRODUCTS_DIR) と入力します。右側のnon-recurciveをrecurciveに変更します。

images/fig15.png

images/fig16.png

8. アプリケーション用プロジェクトでスタティックライブラリのリンク設定

アプリケーション用プロジェクトで"Build Phases"を選びます。そのページから"Link Binary With Librarires"を開き、プラス記号のアイコンをクリックします。

images/fig17.png

そうすると、各ライブラリが一覧表示されます。今回は自作のものですので、Workspaceの中から選びます。

images/fig18.png

9. アプリケーション用プロジェクトでビルド

XcodeのメニューにあるProductからBuildを選択してビルドします。

images/fig19.png

ビルドが成功すると、スタティックライブラリがXcodeプロジェクトの初期値として設定されているビルドフォルダに生成され、同時にヘッダーファイルもコピーされています。XcodeのOrganizerから確認可能ですので、気になる場合はOrgnaizerにあるProjectタブからご自身のプロジェクトを選び、そこからDerivedData/Build/Product/includeフォルダに移動して確認します。

10. Xcodeの再起動

アプリケーション側でビルドを実行したら、Xcodeの補完機能が参照しているインデックスファイルを更新するために、ここでXcodeを終了し、再びワークスペースを開きます。

11. Xcodeの補完機能の動作確認

import文を追記するなどして、補完機能が働くか確認します。

images/fig20.png

12. アプリケーションの実行

実行する前にスキーマの設定がiOSデバイスを対象にしていることを確認します(下図の赤丸部分がスキーマ)。確認後、XcodeのメニューにあるProductからRunを選択して、アプリケーションを実行します。

images/fig22.png

スキーマ設定をシミュレーターに変更して、同様にアプリケーションが実行できることを確認します。

images/fig21.png

以上でアプリケーション用プロジェクトへのスタティックライブラリ設置が完了です。