0

使用事例

  1. カスタム UI コントロールのコレクションを含む静的ライブラリ
  2. カスタム UI の PNG は静的 Lib プロジェクトの一部です
  3. 別の実行可能プロジェクトが静的ライブラリに対してリンクされ、その UI コレクションを使用します


問題

IDE は、静的ライブラリに関連付けられたリソース (PNG ファイルなど) を自動的に埋め込むことを~知らない~ようです。

  • プロジェクトに直接追加する以外に、これらの静的 Lib リソースをメインの実行可能プロジェクトに埋め込む方法はありますか?
  • IDE が依存関係を自動的に検出し、結果の実行可能ファイルにリソースを含める方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

1

そのライブラリにリンクするだけで、静的ライブラリから別のターゲットにリソースを自動的にコピーする方法はありません (フレームワークでできるように)。

私が見つけた最善の回避策は、ライブラリのアセットを「.bundle」で終わるディレクトリ (例: MyLibraryResources.bundle) に置くことです。Xcode (および Finder) は、このディレクトリを 1 つの単位として扱います。ライブラリを使用するターゲットは、単一のリソース (バンドル) をプロジェクトに追加するだけで済みます。完璧ではありませんが、かなり簡単です。

ライブラリでバンドル内のリソースを参照する場合は、次のようにします。

NSString *pathToSomeImage = [[NSBundle mainBundle] pathForResource:@"MyLibraryResources.bundle/SomeImage.png" ofType:nil];

バンドルは、Finder が通常のディレクトリとは異なる方法で処理するため、操作が少し面倒な場合があります。リソースをコピーしてバンドルをアセンブルするターゲットをライブラリ プロジェクトに追加することで、それらを簡単に処理できます。

于 2013-01-08T21:03:57.377 に答える