2

私が作成した 2 つの静的ライブラリを使用しているプロジェクトがあります。それらを libraryA と libraryB と Bundle と呼びましょう。

メイン プロジェクトは libraryA、libraryB およびバンドルを使用し、libraryA には libraryB およびバンドルへの呼び出しもあります。

すべての静的ライブラリ、バンドル、およびメイン プロジェクトは、Xcode で新しいプロジェクトを開始することによって作成されました。作成する最後のプロジェクトは MyProject.xcodeproj です。そのプロジェクトを作成した後、libraryA.xcodeproj、libraryB.xcodeproj、および myBundle.xcodeproj をそれにドラッグして、次のように終了しました。

ここに画像の説明を入力

すべてが正常にコンパイルおよび実行されていますが、MyProject.app 内を調べると、myBundle 内にあるリソース ファイルが含まれていないことがわかります。はい、myBundle.bundle は MyProject の「バンドル リソースのコピー」フェーズにあり、ターゲットの依存関係にもあります。

ところで、このプロジェクトのすべての部分のビルド フェーズの「ターゲット依存関係」、「バイナリとライブラリのリンク」、および「バンドル リソースのコピー」セクションを設定する方法を教えてください。そうすれば、最終的なアプリにはすべてが含まれます。

ありがとう。

4

1 に答える 1

1

ターゲットの依存関係は、現在のターゲットがビルドされる前に他のどのターゲットが最初に実行されるかを意味します。メイン プロジェクトをコンパイルする前にライブラリとバンドルへの変更を取得する場合は、それらの各ターゲットが含まれていることを確認してください。依存関係からそれらを削除しても、プロジェクトは正常にビルドされます。変更を追加する場合は、ライブラリのプロジェクトを手動でビルドする必要があります。

バイナリ ライブラリとのリンクには、libraryA と B の両方が表示されます。これは、そのライブラリの最新のビルド バージョンを参照するため、ターゲットの依存関係と組み合わせることで、MyProject アプリにはライブラリに対する最新の変更がすべて含まれます。

MyProject アプリが正常に動作している場合は、すべて正しく実行されている可能性があります。リンカー エラーが発生することなく静的ライブラリ内のクラスを参照できる場合、それらは正しくリンクされています。myBundle のリソースがアプリの UI に表示されている場合、それも適切にコピーされています。

バンドルからファイルが欠落している場合は、MyBundle プロジェクトを調べて、[バンドル リソースのコピー] セクションに含めるファイルが表示されていることを確認してください。

于 2013-04-18T23:54:47.883 に答える