2011-05-13 10 views
17

へのスタティックライブラリターゲットの依存関係を追加する方法、これは数回に尋ねたが、ほとんどのXcode 3.xのされていますiPadのために、私は2つのプロジェクトを持って、両方のXcodeの4:私が知っているプロジェクト

  • フー、ビューベースのアプリケーションと
  • Foolibに応じて静的ココアタッチライブラリ

前者は、共通のワークスペースに住んで後者。私はその依存関係を追加する方法を考えることができないようです。それもマニュアルに記載されているではありませんので、私は次のことを試してみました:左側のナビゲーション領域内のFooプロジェクトに関する

  1. クリックし、
  2. 選択がトップアップフェーズを構築し、ターゲットの依存関係セクション
  3. を拡大します
  4. プラスボタンをクリックしますが、結果リストは空です。

また、このセクションに.aファイルをドラッグ&ドロップしてもほとんど成功しませんでした。また、ドキュメントの状態

ワークスペース内の1つのプロジェクトのビルド製品がワークスペース内の別のプロジェクトのビルド製品に依存する場合(たとえば、あるプロジェクトが他のプロジェクトで使用されているライブラリをビルドしている場合) Xcodeは暗黙的な依存関係を発見し、正しい順序でビルドします。

私はXcodeのは、それらの依存関係を発見する方法を疑問に思います。 Appleはこの目標依存性を全く追加する必要はないと言っていますか?しかし、Xcodeはどのようにして他のものを使用しているのかを知ることができますか?

なく、少なくとも最後に、私は何とかのFooに渡っFoolibから.hファイルを取得する必要があります。それを行うための推奨される方法は何ですか?明らかに、私はそれらをコピーするだけではありません。フレームワークでは、ヘッダファイルが付属していますが、静的ライブラリを使って作業するときに、一般的に何をするのですか?

正しい方向に軽く触れていただければ幸いです。ありがとうございました。一般のXcode 4では

答えて

13

は編集スキームシートが暗示するように、自動的に依存関係を発見しているようです。他の開発者は、依存関係を自動的に発見されず、明示的にリストが必要なことを述べている:

ので、編集スキームは - >ビルド - >ワークスペースからターゲットを追加します。

限り静的ライブラリのヘッダファイルが行くように、Xcodeの4は、少なくとも、コード補完や構文の強調表示して、問題を持っているようです。唯一の方法は、問題のヘッダーファイルのコピーをメインプロジェクトのグループフォルダにドラッグするために、静的ライブラリのクラスで適切に動作するようにすることです。 Add to Target ...のチェックをはずすことに注意してください。これは、構文ハイライトとコード補完を処理します。残りの部分は、適切なヘッダー検索パスを与えることによって処理する必要があります。これは、ユーザーのヘッダー検索パス= $(BUILT_PRODUCTS_DIR) - 場所の設定をどのように設定するかによって異なります。

参照:this link

+1

ありがとうございます。だから、TargetをSchemeに追加すると、XcodeはFooの前にFoolibを構築します。しかし、私はlibFoolib.aを何とか私のFooプロジェクトに入れなければならないようです。さもなければ、リンカのエラーが出ますよね?現時点ではフーリブをビルドすることさえできません。うまくいっていますが、ProductsグループのlibFoolib.aは赤色のままです。何が起こっているのだろうか? – McKrassy

+0

AMRまたはi386アーキテクチャーの問題は、デバイスまたはエミュレーターでの実行によって異なります。たぶんこれはあなたの問題です(一つのアーキテクチャで静的ライブラリをコンパイルするうちに、このライブラリを使っているプロジェクトは別のアーキテクチャのライブラリとリンクしようとしています...) –

+0

@MPenades yup)あなたは実際に** Universal Libraries **このチュートリアルをチェックしてください。 http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial – Resty

関連する問題