[macos] OS X Frameworkライブラリがロードされていません: 'イメージが見つかりません'



Answers

だから私はそれを働かせることができました、あなたが正しい指示を持っているときはとても簡単です。 私が探していたのは、システムライブラリフォルダに書き込まれるのではなく、Appバンドルに存在する「プライベート」フレームワークでした。

フレームワークを構築する

  1. ターゲットを追加してCocoaフレームワークを作成する
  2. そのターゲット内で 'ビルド設定' 'インストールディレクトリ'を '@executable_path /../ Frameworks'に設定します。
  3. ライブラリをビルドし、アーカイブまたは製品ディレクトリから.frameworkにアクセスします。

フレームワークを含む

  1. 作成した.frameworkファイルをXcodeプロジェクトにドラッグし、「ファイルをディレクトリにコピー」にチェックを入れてください。
  2. 含まれているアプリケーションのターゲットで、新しい 'Copy File Build Phase'
  3. '目的地'を 'フレームワーク'に設定する
  4. 作成された.frameworkをドラッグする
Question

私は基本的なOS Xフレームワークを作成しようとしていますが、今はテストフレームワークを作成しています: TestMacFramework.frameworkと私はそれを新しいOS Xアプリケーションプロジェクトにインポートしようとしています。

.frameworkファイルをビルドして新しいプロジェクトにインポートしました。フレームワークは正常にリンクしているようですが、フレームワークビルドフェーズのセクションに追加したパブリックヘッダファイルを参照できます。

しかし、コンテナアプリケーションを実行しようとすると、次のエラーが発生します。

dyld: Library not loaded: /Library/Frameworks/TestMacFramework.framework/Versions/A/TestMacFramework
  Referenced from: /Users/samharman/Library/Developer/Xcode/DerivedData/TestMacContainer-dzabuelobzfknafuhmgooqhqrgzl/Build/Products/Debug/TestMacContainer.app/Contents/MacOS/TestMacContainer
  Reason: image not found

ちょっとしたグーグルで、 Copy Filesセクションをコンテナアプリケーションの作成段階に追加する必要があることに気がついたので、私はこれを行い、そういう設定をしました...

しかし、私はまだランタイムエラーを取得しています。 私は明らかにここで何か間違っていますが、Appleの開発者用ライブラリのリソースは、Xcode 2を参照していますので、あまり役に立ちません!

私は何を逃したのですか?

更新:

TestMacFramework.frameworkが.app contents / frameworksディレクトリにコピーされているが、HDのLibrary / FrameworksディレクトリにインストールされていないことがTestMacFramework.frameworkます

更新2:

TestMacFramework.frameworkLibrary/Frameworksディレクトリに手動でコピーするとビルドが正しくリンクされます




Xcode 8の場合、一部の失効した製品は、 このソリューションを参照して派生データフォルダから削除されます。

Apple: MacOS 10.12以降では、Xcodeは失効した派生データ、プリコンパイル済みヘッダー、およびモジュールキャッシュをクリーンアップします。 (23282174)

Xcodeビルドシステムでは、以前のビルドで生成されたが、その後プロジェクトから削除されたビルド成果物の古いファイルの削除がサポートされています。

作者の考えに基づいて、私はこのビルドログを私のケースから見つけました。

Remove stale build products

/bin/rm -rf /Users/usename/Library/Developer/Xcode/DerivedData/myapp-esvvhwwwwngijeemhatmklwzoxnb/Build/Products/Debug-iphonesimulator/myapp.app/Frameworks/AliyunVodPlayerSDK.framework
/bin/rmdir /Users/usename/Library/Developer/Xcode/DerivedData/myapp-esvvhwwwwngijeemhatmklwzoxnb/Build/Products/Debug-iphonesimulator/myapp.app/Frameworks

新しいコピーファイルフェーズを作成し、目的の古いフレームワークをFrameworksの宛先にコピーした後、再構築後に上記の削除ログは消えます。

私の状況と理由を明確にして、それが誰かにとって有益だと願ってください。




派生データを削除すると、私のために保存されました




誤ってキーチェーンをリセットした場合、これはキーチェーンにApple証明書がないために発生します。 私は私の問題を解決するためにthisを続けた。

私は同じ問題があり、WWDR(Apple Worldwide Developer Relations Certification Authority)を再ダウンロードすることで修正することができました。 ここからダウンロード: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer : http://developer.apple.com/certificationauthority/AppleWWDRCA.cer




私は別の理由で同じ問題を抱えていました。 私はデバッグとリリース(プロジェクト→情報タブ→設定)の新しい設定を作成しました。 そして、私はそれを動作させるために、ポッドフレームワークのシェルスクリプト(Pods- "appName" -frameworks.sh、Targets Support Files)を変更しなければなりませんでした。

[Xcode 9]




私は、この問題がコード署名と証明書にのみ関連していることを発見しました。 これを確認するには、基本的なシングルビューアプリケーションを作成し、デバイスを一切変更せずにアプリケーションを実行してみてください。 同じエラータイプが表示された場合、これはコードが正常であることを示しています。 私のように証明書が無効であることがわかります。 すべてをもう一度ダウンロードし、期限切れのものを修正してください。 その後、エラーを報告しないように基本的なアプリを手に入れたら、Xcodeを終了してMacを再起動した後にアプリを再試行してください。 それがついにこの悪夢を終わらせました。 あなたが実行しようとしたときにBuild Successfulというメッセージが表示された場合、これはあなたのコードとはまったく関係がありません。 FYI




上記のオプションは私には含まれていません。 Runpath Search Pathを指定して解決しました

これは[ビルド設定 ]タブにあります。 「 リンク 」セクション。 ' Runpath Search Paths 'を$(inherited) @executable_path/Frameworks




Related