2013年6月9日日曜日

iOS WorkspaceでFramework(Library) Projectを作る方法



XCodeでWoekspaceを作り、Applicarion ProjectとFrameowork Projectを関連づける方法です。
検索するといくつも出てはきますが、バージョンによって手順が異なっており、XCode 4.6.1にズバりのものが見つかりません。
一番近かったのはIntroduction to Using Static Libraries in iOSで、これは既存プロジェクトからFrameworkを分離する方法ですが、これに沿った手順で次の要領で新規に作ることができます。
  1. 新規Workspaceを作る。


  2. Frameworkプロジェクトを作る。

    Workspaceに追加する前にプロジェクトを閉じる。
  3. WorkspaceにFrameworkプロジェクトの.xcodeprojを追加する。
    File>New>またはWorkspaceの左ペイン右クリックからAdd FIles to ...をクリック。
     

    同様にApplicationプロジェクトの.xcodeprojを追加する。
  4. Workspaceで各々のプロジェクト内のtargetを選択、Workspaceでbuildする。
    正しくbuildされれるとTestFrameworkの下のproduct内のlibTestFramework.aの赤字が黒に変わる。赤のままのときはWorkspaceのProject選択をチェック。もし別にTestFrameworkプリジェクトが開いたら閉じる。
  5. Workspace でApplicationプロジェクトのtargetを選択。Build Phase>Link Binary With LibrariesでFrameworkの.aを追加する。



  6. Framework内のクラスを使うファイルに#importを追加。
    "TestFramework/TestFramework.h"
    "TestFramework"はtargetの"Product Name"に設定されている名前。"TestFramework.h"は使用するクラスのヘッダファイル。

  7. Build Phases 公開するヘッダの設定
    プロジェクト作成時に追加されるヘッダは予め含まれているが、その後プロジェクトに追加するヘッダファイルを公開する場合は、手動で追加する。
Framework Project のBuild Setting リンカオプション(-ObjC)は自動的に設定されますが、Application Projectには設定されていません。このままでも問題に場合が多いと思いますが、Framework に Category が含まれている場合はApplication Projectにもこのオプションを追加する必要があります

 "selector not recognized" が発生する場合は多分これが原因です。

Building Objective-C static libraries with categories



0 件のコメント: