web-dev-qa-db-ja.com

Xcode 4で静的ライブラリをiOSプロジェクトにリンクする

静的ライブラリにコンパイルするプロジェクト(AQGridView)がありますが、プロジェクトに追加できないようです。

プロジェクトをプロジェクトにドラッグするとワークスペースが作成され、libAQGridView.aファイルをDerivedDataディレクトリからライブラリとして認識しません。何が間違っているのかわかりません。

これはAQGridViewプロジェクトです。 Xcode 4プロジェクトでそれを使用する方法を具体的に知っている人はいますか?

74
Matt Hudson

これを次のように行います。

  1. 静的ライブラリプロジェクトにドラッグします。 Xcodeで静的ライブラリプロジェクトを開いている場合は、ここで閉じます。
  2. プロジェクトナビゲーター(静的ライブラリを追加するプロジェクト)でメインプロジェクトを選択し、エディターで、左側の列のヘッダーTARGETSの下で、メインプロジェクトのターゲットを選択し、ビルドフェーズタブに移動します。
  3. [ターゲットの依存関係]の[+]をクリックし、追加された静的ライブラリプロジェクトからライブラリアイコンのターゲット依存関係を追加します。
  4. [バイナリとライブラリをリンク]の[+]をクリックし、[ワークスペース]フォルダの下にあるライブラリアイコンを追加します。
  5. 静的ライブラリプロジェクト自体でヘッダーがリンクされている場合は、静的ライブラリプロジェクトのヘッダーのヘッダー検索パスを入力する必要があります。

メインプロジェクトのプロジェクトナビゲータでメインプロジェクトの下にネストされた静的ライブラリプロジェクトが表示されない場合、最も可能性の高い理由は、静的ライブラリのXcodeプロジェクトがまだ開いていることです。 Xcodeを終了し、元の静的ライブラリプロジェクト自体を開かずに、ネストされた静的ライブラリプロジェクトがあるメインプロジェクトを開くと、メインプロジェクトでネストされたプロジェクトとして表示されるはずです。

93
Halle

Xcodeメニュー>表示>ユーティリティ>ファイルインスペクター

静的ライブラリファイルを選択し、[ファイルの種類]を[識別と種類]の[Mach-Oオブジェクトコード]に設定します。

14
Kazuki Sakamoto

Finderで.aファイルを見つけて、プロジェクトにドラッグします。

「コピー先グループのフォルダーにアイテムをコピー(必要な場合)」を選択し、プロジェクトにヘッダーを追加します。

これで、XCode 4はそのフレームワークに対して自動的にリンクします。

プロジェクトでライブラリがどのように表示されるかを次に示します。

5

ワークスペースはこれを容易にするはずですが、そうするかどうかはわかりません。それを行う方法は、ワークスペースを作成し、メインプロジェクトを追加し、ライブラリプロジェクトを追加することです。次に、メインプロジェクトのビルドフェーズに進み、「ライブラリとバイナリをリンク」セクションでライブラリを追加し、ライブラリを追加します。それはshould必要なものすべてで、少なくともそれは私の読書ですが、そうではありません。私がしていることは、Xcodeの環境設定に行き、次にソースツリーペインに行きます。静的ライブラリのヘッダーを指すソースツリーを追加し、プロジェクトのビルド設定に戻り、ヘッダー検索パスキーに戻り、そこに$ {foo}と入力します。ここで、「foo」はソースツリーと呼ばれるものです。

それが私のために働くものですが、それがそれを行うための最良または最も簡単な方法であるかどうかはわかりませんが。

5
Joey Gibson

Appleの ドキュメント に従ってください。

簡単に言うと:

  1. ターゲットをライブラリにリンクします。
  2. 追加 -ObjCから「その他のリンカーフラグ」(OTHER_LDFLAGS)ターゲットのビルド設定の下。

また、ライブラリはターゲットの依存関係に表示されないため、メインプロジェクトのスキームにライブラリを追加する必要がありました。

3
Corin

ハレの答えは私に1つの追加で機能します:

  1. ビルド設定静的ライブラリプロジェクトのプライベート(またはパブリック)ヘッダーフォルダーパス値をチェックインして、コピーします。
  2. コピーした値をクライアントプロジェクトに追加ビルド設定ヘッダー検索パスまたはユーザーヘッダー検索パス依存使用しているincludeディレクティブの
0
IZIordanov