0

メインプロジェクトにリンクしているフレームワークがいくつかありますが、何らかの理由で、Xcode の外部ですべてを実行するたびに、実行可能ファイルはフレームワークをまったく見つけることができません。

フレームワークには、動的インストール パスが @loader_path/../Frameworks に設定されています。@rpath を単純に入力しようとしましたが、うまくいきませんでした。メインの実行可能ファイルで、Runpath Search Paths が空です。

これをデバッグする簡単な方法はありますか? 私は、フレームワークのリンクについて話しているすべての Web サイトやブログの投稿を見てきましたが、何も役に立たなかったと思います。

4

1 に答える 1

2

たとえば、フレームワークをアプリ バンドルにコピーするビルド フェーズがあるとします。</p>

ビルド フェーズの例

アプリのビルド設定で.. Runpath 検索パス @executable_path/../Frameworks

フレームワークのビルド設定で.. 動的ライブラリのインストール名 @rpath/$(EXECUTABLE_PATH)

(マクロ $(EXECUTABLE_PATH) は AFramework.framework/Versions/A/AFramework のようなものに展開する必要があります)

間違えると、起動時にアプリがクラッシュするはずです。クラッシュレポートには次のように表示されるはずです

Dyld Error Message:
  Library not loaded: @rpath/TestyFramework.framework/Versions/A/TestyFramework
  Referenced from: /path/to/TestyApp.app/Contents/MacOS/TestyApp
  Reason: image not found

これは、値がどうあるべきか、フレームワークがどこにあるべきかを理解するのに役立ちます

つまり、私の場合、完全な実行パスの検索パスは..

/path/to/TestyApp.app/Contents/MacOS/TestyApp/../Frameworks

そのため、ライブラリは次の場所にあります。

/path/to/TestyApp.app/Contents/MacOS/TestyApp/../Frameworks/TestyFramework.framework
于 2012-11-19T23:17:02.047 に答える