web-dev-qa-db-ja.com

dyld:ライブラリがロードされていません:@ rpath / libswiftAVFoundation.dylib理由:画像が見つかりません

アプリの起動時にこのエラーが発生します。 MacOS High Sierra 10.13のXcode 9.0(9A235)でビルドしています。私もXcode 8.3.3でビルドしてみましたが、同じ結果になりました。プロジェクトは一般にObjective Cですが、フレームワークYouAppi.frameworkはSwiftです。

dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib
  Referenced from: /private/var/containers/Bundle/Application/7D3E2815-4CA3-4258-AEF6-C0626055A8F2/dingbats.app/Frameworks/YouAppi.framework/YouAppi
  Reason: image not found

一見、これは this question の複製のように見えますが、エラーはその点で異なります。他の質問では、理由は適切な画像が見つかりませんで、私の場合は画像が見つかりませんです。

私は解決するために次を試しました:

  1. フレームワークを削除して再追加する
  2. プロジェクトのクリーンおよびOption + Clean
  3. 〜/ Library/Developer/Xcode/DerivedDataフォルダーを削除します
  4. ビルド設定->常に埋め込むSwift標準ライブラリ=はい
  5. ビルド設定->ストリップSwiftシンボル=いいえ
  6. ビルド設定->リンク->実行パス検索パス-
    • @loader_pathを追加
    • @rpathを追加
    • @ executable_path/Frameworksを追加
  7. 信頼がシステムのデフォルトを使用するように設定されている開発者および配布証明書を確認しました
  8. 最新のWWDRおよびG2証明書がインストールされていることを確認しました
  9. 上記の証明書の有効性を確認しました
  10. YouAppi.frameworkをFrameworks /フォルダーに移動しました。 (元々は「サードパーティフレームワーク」フォルダにありました。)
  11. LibswiftAVFoundation.dylibをプロジェクトのFrameworksフォルダーにコピーしてみました

最近、新しいコンピューターに移動していません。

IOS 11.0.23(15A432)を実行しているiPhone 7+とiOS 9.3.5(13G36)を実行しているiPad Mini 1で同じ結果が得られました。

これも試してみました:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.Apple.dt.Xcode

アイデア?

10
drewster

Swift=で非Swiftプロジェクトに構築されたフレームワークを含める場合、Swift標準ライブラリを最終出力にコピーする必要があります。Xcodeにはこれ(元の質問の(#4))が、場合によっては実際にはそれがしないバグがあるようです起こる。

Armv7やarm64などの複数のアーキテクチャ用に構築されたSwiftで構築されたフレームワークがある場合、これが起こると言った別のスレッドを見ました。 (スレッド here を参照してください。)

いずれにせよ、解決策はそれらをすべて手動で追加することです。探しているファイルは/ Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneosにあります。

私がしたことはこれでした:

ステップ1.Terminalを開き、これを入力して、ライブラリーを新しいフォルダーにコピーしますswiftStdLib、ホームディレクトリ。

cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos
mkdir ~/swiftStdLib
cp libswift*.dylib ~/swiftStdLib

ステップ2. Xcode内で、General->Embedded Binariesに移動します。 +を押して追加します。 その他の追加をクリックし、ホームフォルダ/swiftStdLibに移動します。すべて選択してEnterキーを押します。

ステップ3.プロジェクトをクリーンアップしてビルドします。

これが誰かを助けることを願っています。

20
drewster

フレームワークを追加する前に、これを試してください:

Xcode9の派生データを削除しました-それは私のために機能します

以下のリンクを参照してください:派生データからコンテンツを削除する方法

Xcode 9の派生データを削除するにはどうすればよいですか?

4
ioSana

Keychain Accessから古い開発者証明書を削除すると、助けになりました。

0
Denis