dyld:未加载库:@rpath/libswiftAVFoundation.dylib 原因:找不到图像
dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib Reason: image not found
我在启动我的应用程序时遇到此错误。我在 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
乍一看,这似乎是 的重复,但其中的错误是不同的。在另一个问题中,原因是找不到合适的图像,而我的是找不到图像。
我尝试了以下方法来解决:
- 删除并重新添加框架
- 清理并选择+清理项目
- 删除 ~/Library/Developer/Xcode/DerivedData 文件夹
- 构建设置 -> 始终嵌入 Swift 标准库 = 是
- Build Settings -> Strip Swift Symbols = No
- 构建设置 -> 链接 -> 运行路径搜索路径 --
- 已添加@loader_path
- 添加了@rpath
- 已添加@executable_path/Frameworks
- 已检查将信任设置为使用系统默认值的开发人员和分发证书
- 检查我是否安装了最新的 WWDR 和 G2 证书
- 检查上述证书的有效性
- 已将 YouAppi.framework 移动到 Frameworks/ 文件夹中。 (它最初位于 "Third-Party Frameworks" 文件夹中。)
- 尝试将 libswiftAVFoundation.dylib 复制到我项目的 Frameworks 文件夹中
我最近没有换过新电脑。
我的 iPhone 7+ 运行 iOS 11.0.23 (15A432) 以及 iPad Mini 1 运行 iOS 9.3.5 (13G36).
也试过这个:
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
想法?
在非Swift 项目中包含使用Swift 构建的框架时,需要将Swift 标准库复制到最终输出中。 Xcode 有一个复选框(原始问题中的#4),但显然有一个错误,在某些情况下,不会 实际发生了。
我在某处看到另一个线程,它说当您使用 Swift 构建的框架时会发生这种情况,该框架是为多种架构构建的,例如 armv7 和 arm64。 (参见线程 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 中,转到 常规 -> 嵌入式二进制文件 ,然后点击 + 进行补充。单击 添加其他 ,然后导航到您的主文件夹/swiftStdLib。 Select 全部并按回车键。
第 3 步。清理并构建项目。
希望这对某人有所帮助。
XCODE11 的更新:
在 Xcode 11.3 中,Swift 库文件夹已更改为包含主要 Swift 版本号。最初的问题是基于Xcode 9,所以这可能比Xcode 11.3更早,但我没有检查过。
新文件夹是/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/iphoneos.
所以上面的第 1 步改为:
cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/iphoneos
mkdir ~/swiftStdLib
cp libswift*.dylib ~/swiftStdLib
从 Keychain Access 中删除旧的开发者证书对我很有帮助。
在添加框架之前试试这个:
我删除了 xcode9 中的派生数据 - 它适用于我
参考下面link:如何从派生数据中删除内容
Simple step to follow
项目 -> 构建阶段 -> 嵌入框架 -> +.
它适用于所有人。适合所有人的完美解决方案。
- 在 Link 二进制文件中添加库 &
- 在目标部分添加新的复制文件短语,Select 框架并在那里导入库。
- 还有运行你的代码..魔法..享受
注意:-请确保未选中“复制文件”中的“仅在安装时复制”
有时只是清理项目似乎对我有用。我注意到当我有一个 swfit/objc/c++ 项目组合时,这种情况会更频繁地发生。
我在启动我的应用程序时遇到此错误。我在 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
乍一看,这似乎是
我尝试了以下方法来解决:
- 删除并重新添加框架
- 清理并选择+清理项目
- 删除 ~/Library/Developer/Xcode/DerivedData 文件夹
- 构建设置 -> 始终嵌入 Swift 标准库 = 是
- Build Settings -> Strip Swift Symbols = No
- 构建设置 -> 链接 -> 运行路径搜索路径 --
- 已添加@loader_path
- 添加了@rpath
- 已添加@executable_path/Frameworks
- 已检查将信任设置为使用系统默认值的开发人员和分发证书
- 检查我是否安装了最新的 WWDR 和 G2 证书
- 检查上述证书的有效性
- 已将 YouAppi.framework 移动到 Frameworks/ 文件夹中。 (它最初位于 "Third-Party Frameworks" 文件夹中。)
- 尝试将 libswiftAVFoundation.dylib 复制到我项目的 Frameworks 文件夹中
我最近没有换过新电脑。
我的 iPhone 7+ 运行 iOS 11.0.23 (15A432) 以及 iPad Mini 1 运行 iOS 9.3.5 (13G36).
也试过这个:
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
想法?
在非Swift 项目中包含使用Swift 构建的框架时,需要将Swift 标准库复制到最终输出中。 Xcode 有一个复选框(原始问题中的#4),但显然有一个错误,在某些情况下,不会 实际发生了。
我在某处看到另一个线程,它说当您使用 Swift 构建的框架时会发生这种情况,该框架是为多种架构构建的,例如 armv7 和 arm64。 (参见线程 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 中,转到 常规 -> 嵌入式二进制文件 ,然后点击 + 进行补充。单击 添加其他 ,然后导航到您的主文件夹/swiftStdLib。 Select 全部并按回车键。
第 3 步。清理并构建项目。
希望这对某人有所帮助。
XCODE11 的更新:
在 Xcode 11.3 中,Swift 库文件夹已更改为包含主要 Swift 版本号。最初的问题是基于Xcode 9,所以这可能比Xcode 11.3更早,但我没有检查过。
新文件夹是/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/iphoneos.
所以上面的第 1 步改为:
cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-5.0/iphoneos
mkdir ~/swiftStdLib
cp libswift*.dylib ~/swiftStdLib
从 Keychain Access 中删除旧的开发者证书对我很有帮助。
在添加框架之前试试这个:
我删除了 xcode9 中的派生数据 - 它适用于我
参考下面link:如何从派生数据中删除内容
Simple step to follow
项目 -> 构建阶段 -> 嵌入框架 -> +.
它适用于所有人。适合所有人的完美解决方案。
- 在 Link 二进制文件中添加库 &
- 在目标部分添加新的复制文件短语,Select 框架并在那里导入库。
- 还有运行你的代码..魔法..享受
注意:-请确保未选中“复制文件”中的“仅在安装时复制”
有时只是清理项目似乎对我有用。我注意到当我有一个 swfit/objc/c++ 项目组合时,这种情况会更频繁地发生。