我在启动我的应用程序时遇到此错误。我正在 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 的副本,但那个错误是不同的。在另一个问题中,原因是找不到合适的图片,而我的是找不到图片。
我尝试了以下方法来解决:
- 删除并重新添加框架
- Clean and Option+Clean 项目
- 删除 ~/Library/Developer/Xcode/DerivedData 文件夹
- build设置 -> 始终嵌入 Swift 标准库 = 是
- Build Settings -> Strip Swift Symbols = No
- build设置 -> 链接 -> 运行路径搜索路径 --
- 添加@loader_path
- 添加@rpath
- 添加了@executable_path/Frameworks
- 检查了 Trust 设置为使用系统默认值的开发人员和分发证书
- 检查我是否安装了最新的 WWDR 和 G2 证书
- 检查上述证书的有效性
- 将 YouAppi.framework 移动到 Frameworks/文件夹中。 (它最初位于“第三方框架”文件夹中。)
- 尝试将 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
想法?
最佳答案
在非 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 中,转到 General -> Embedded Binaries,然后点击 + 进行添加。点击添加其他,然后导航到您的主文件夹/swiftStdLib。全选并回车。
第 3 步。清理并构建项目。
希望这对某人有帮助。
XCODE 11 更新:
在 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
关于ios - dyld:未加载库:@rpath/libswiftAVFoundation.dylib 原因:找不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747801/