0

リソース、nibファイル、サウンドファイルなどを含むプライベートフレームワークを共有する「メインアプリ」と「ヘルパーアプリ」(問題がある場合はサンドボックス)があります。

フレームワークは両方のアプリで問題なく呼び出され、使用されます。ただし、フレームワーク コード内からNSViewController、リソース フォルダーに含まれる nib ファイルをロードする があります。これは、「メインアプリ」によって呼び出されている限り機能するようです。ただし、Helper アプリ (ログイン項目) で同じことを行っても機能せず、"Unable to find nib named"エラーで失敗します。

実際の「フレームワーク」はメイン アプリの「フレームワーク」ディレクトリにコピーされ、ヘルパー アプリで @rpath を使用してフレームワークを見つけます。@executable_path/../../../../Frameworks

このセットアップは問題なく動作するように見えますが、実行時に、フレームワーク コードは、フレームワークのリソース フォルダーではなく、ヘルパー アプリのリソース フォルダーの下で名前付きリソースを見つけようとするようです。フレームワークの実行可能ファイル/ライブラリがインストールされている正確なパスの下でフレームワークが常に見えるようにするために、xcode で設定できる設定またはフラグはありますか?

4

2 に答える 2

0

唯一の解決策は、フレームワークを「ヘルパー」アプリにもコピーすることです。フレームワークがメイン アプリ内に配置された実際のフレームワークへの単なるシンボリック リンクである場合、リソースは読み込まれません。

于 2012-09-02T18:14:03.030 に答える
0

ここで説明されているように、フレームワークを動的または共有にすることができます動的ライブラリプログラミングトピック

少し複雑なプロセスですが、非常に優れた機能です。

他に何があなたを助けることができますか?
おそらく、Xcode のビルド設定でライブラリ検索パスまたはフレームワーク検索パスを編集します。そこで、探す追加の検索パスを指定できます。

それでも、フレームワークをメイン アプリのディレクトリにコピーしません。ディスク上の 1 か所に残しておき、それらをプロジェクト (メインとヘルパー) に追加し、指定された検索パスを追加します。

ところで: あなたのフレームワークはどのように実装されていますか? フォルダーですか、コンパイルされていますか、それともコード ファイルのみですか?

于 2012-09-02T18:36:18.703 に答える