0

Mac アプリのコンパイル済みコピーをデスクトップにエクスポートして実行する際に、ややイライラする問題があります。まずは背景を...

アプリには、参照される 2 つのサブプロジェクトが含まれています。最初のプロジェクトはアーカイブを作成し、2 番目のプロジェクトはフレームワークを作成します。どちらも特定の機能を実行するためにメイン プロジェクトで使用されます。

xcode プロジェクトの表示

アプリは Xcode 内で正常に動作します。問題は、アーカイブしてデスクトップにエクスポートして、それ自体がどれだけうまく動作するかを確認するときに始まります。これには通常の手順を使用しますが、デスクトップからアプリを起動しようとすると、読み込まれません。ダイナミック ローダーがフレームワーク オブジェクトを見つけられないというメッセージが表示されます。最も役立つと思われるエラー レポートの部分には、次のように書かれています...

Dyld エラー メッセージ: ライブラリがロードされていません: @rpath/JXLS.framework/Versions/A/JXLS

参照元: /Users/USER/BuntingSimulator.app/Contents/MacOS/Baseball Situation Simulator

理由: 画像が見つかりません

JXLS は存在しますが、エクスポートされた Mac アプリ バンドルには含まれていません。どこを探すべきか、何を探すべきかについて何か提案はありますか? 私の疑念は、@rpath の値と、サブプロジェクトがメイン プロジェクト内でどのように参照またはビルドされているかにあります。

前もって感謝します。

これは、以下の回答を得た後に追加されました。誰かがこれを使用する必要がある場合に備えて、プロジェクトに加えられた変更が少しわかりにくいので説明したいと思います...

最初に、メイン ターゲットのビルド フェーズにファイルのコピー ステップを追加する必要があります。どういう意味ですか?

最初のステップの最終結果

詳細な手順は次のとおりです。

1: メイン プロジェクトのメイン ターゲットをクリックします。 2: ビルド フェーズを選択します。 3: プラス記号をクリックして、ビルド フェーズを追加します。 「フレームワーク」へ 6: フレームワーク オブジェクトを左側のパネルから、作成したばかりの新しいコピー フェーズの名前セクションにドラッグします。

次に、フレームワーク ターゲットの「ビルド設定」に入り、@rpath を @executable_path/../Frameworks に置き換える必要があります。

2 番目のステップの最終結果

4

1 に答える 1

1

これを自分で使用する場合は、JXLS を /System/Library/Frameworks にコピーしてください。

それ以外の場合は、この回答を見てください。

于 2015-04-23T02:55:18.187 に答える