Ios dyld:未加载库:@rpath/libswitvFoundation.dylib原因:未找到图像
我在启动应用程序时遇到此错误。我在MacOS High Sierra 10.13的Xcode 9.0(9A235)下建造。我还尝试了在Xcode 8.3.3下构建,得到了相同的结果。该项目通常是目标C,但框架YouAppi.framework是Swift:Ios dyld:未加载库:@rpath/libswitvFoundation.dylib原因:未找到图像,ios,swift,xcode9,dyld,Ios,Swift,Xcode9,Dyld,我在启动应用程序时遇到此错误。我在MacOS High Sierra 10.13的Xcode 9.0(9A235)下建造。我还尝试了在Xcode 8.3.3下构建,得到了相同的结果。该项目通常是目标C,但框架YouAppi.framework是Swift: dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib Referenced from: /private/var/containers/Bundle/Application
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
乍一看,这似乎是的一个副本,但错误与此不同。在另一个问题中,原因是找不到合适的图像,而我的是找不到图像
我已尝试解决以下问题:
- 添加了@loader\u路径
- 添加@rpath
- 添加了@executable\u路径/框架
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),但显然存在一个bug,在某些情况下,它实际上不会发生 我在某处看到另一个线程说,当您使用Swift构建框架时,会发生这种情况,Swift是为多种体系结构构建的,例如armv7和arm64。(请参阅线程。) 在任何情况下,解决方案都是手动添加它们。您要查找的文件位于/Applications/Xcode.app/Contents/Developer/toolschains/Xcode default.xctoolschain/usr/lib/swift/iphoneos中 我所做的是: 第一步。打开终端并键入此命令,将库复制到主目录中的新文件夹swiftStdLib
cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
mkdir ~/swiftStdLib
cp libswift*.dylib ~/swiftStdLib
第二步。在Xcode中,转到常规->嵌入式二进制文件,然后点击+添加。单击添加其他,然后导航到您的主文件夹/swiftStdLib。选择全部并点击回车键
第三步。清洁和建设项目
希望这对别人有帮助
XCODE 11的更新:
在Xcode 11.3中,Swift库文件夹已更改为包含主要Swift版本号。最初的问题是基于Xcode 9的,所以这可能比Xcode 11.3早更改,但我没有检查
新文件夹是/Applications/Xcode.app/Contents/Developer/toolschains/Xcode default.xctoolschain/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中删除了派生数据-它适合我 请参阅下面的链接:如何从派生数据中删除内容 简单的步骤 项目->构建阶段->嵌入框架->+。 这对所有人都有效。。适合所有人的完美解决方案
- 在与库的链接二进制文件中添加库&
- 添加新的复制文件短语,在目标部分选择框架并在那个里导入库李>
- 然后运行你的代码。。魔术享受
只是清理一下这个项目有时似乎对我有用。我注意到,当我有一个swfit/objc/c++项目组合时,这种情况会更频繁地发生 它是在另一台计算机上运行的吗?@Linus,我没有另一台计算机来构建它,但为了运行,我尝试了上面提到的两台设备(iPhone 7+和iPad Mini),结果是一样的。想分享这个项目吗?我可以用我的机器帮你测试一下。如果我能帮我解决这个问题,我会的-非常感谢!“构建设置->始终嵌入Swift标准库=是”这很有帮助。。所有的废话删除这里,没有一个解决办法!顺便说一句,我得到了找不到符号的错误:。。那该怎么办。。你知道吗?找不到符号可能是另一个问题。也许开始一个新问题。谢谢你的回复@drewster,我已经发现了问题。实际上是Swift编译器问题,与此无关。就这样解决了…太好了,救了我一天!谢谢:)从手机中删除应用程序,然后删除派生数据并尝试再次构建到设备,这为我解决了问题。