web-dev-qa-db-ja.com

Xcode 4:プロジェクトに静的ライブラリターゲットの依存関係を追加する方法

私は知っています、これは何度か尋ねられましたが、主にXcode 3.xについてです。 iPadの場合、2つのプロジェクトがあり、どちらも共通のワークスペースに住んでいます。

  • Foo、ビューベースのアプリケーションと
  • Foolib、静的なCocoa-Touchライブラリ

前者は後者に依存します。その依存関係を追加する方法を理解できないようです。ドキュメントでは十分に説明されていないため、以下を試しました。

  1. 左側のナビゲーション領域にあるFooプロジェクトをクリックし、
  2. 上部にある[ビルドフェーズ]を選択し、[ターゲットの依存関係]セクションを展開します
  3. プラスボタンをクリックしますが、結果のリストは空です。

また、.aファイルをそのセクションにドラッグアンドドロップしようとしましたが、ほとんど成功しませんでした。また、ドキュメントには、

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

Xcodeがこれらの依存関係をどのように検出するのかと思います。 Appleは、このターゲット依存関係をまったく追加する必要がないと言っていますか?しかし、Xcodeは、一方が他方を使用していることをどのようにして発見しますか?

最後に重要なことですが、Foolibから.hファイルをFooに取得する必要があります。それを行うための推奨される方法は何ですか?明らかに、それらを単にコピーする必要はありません。フレームワークにはヘッダーファイルが含まれていますが、並行して開発する静的ライブラリを使用する場合、一般的に何をしますか。

正しい方向にナッジしていただければ幸いです。ありがとうございました。

17
McKrassy

一般に、Xcode 4は、スキームの編集シートが示すように、依存関係を自動的に検出するようです。他の開発者は、依存関係は自動的に検出されず、明示的にリストする必要があると述べています:

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

静的ライブラリのヘッダーファイルに関する限り、Xcode 4には、少なくともコード補完と構文の強調表示に問題があるようです。静的ライブラリのクラスを適切に操作して、問題のヘッダーファイルのコピーをメインプロジェクトのグループフォルダーにドラッグする唯一の方法です。 [ターゲットに追加...]をオフにする必要があることに注意してください。これにより、構文の強調表示とコード補完が処理されます。残りは適切なヘッダー検索パスを与えることによって処理されるべきです。これは、ユーザーヘッダーの検索パス= $(BUILT_PRODUCTS_DIR)になります-場所の設定の方法によって異なります。

参照: このリンク

13
FluffulousChimp