Ios dyld:未加载库:@rpath/libswitvFoundation.dylib原因:未找到图像

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

我在启动应用程序时遇到此错误。我在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/7D3E2815-4CA3-4258-AEF6-C0626055A8F2/dingbats.app/Frameworks/YouAppi.framework/YouAppi
  Reason: image not found
乍一看,这似乎是的一个副本,但错误与此不同。在另一个问题中,原因是找不到合适的图像,而我的是找不到图像

我已尝试解决以下问题:

  • 删除并重新添加框架
  • 清理和选项+清理项目
  • 删除~/Library/Developer/Xcode/DerivedData文件夹
  • 生成设置->始终嵌入Swift标准库=是
  • 生成设置->带Swift符号=否
  • 生成设置->链接->运行路径搜索路径--
    • 添加了@loader\u路径
    • 添加@rpath
    • 添加了@executable\u路径/框架
  • 已检查信任设置为使用系统默认值的开发人员和分发证书
  • 已检查是否已安装最新的WWDR和G2证书
  • 检查上述证书的有效性
  • 已将YouAppi.framework移动到Frameworks/文件夹中。(它最初位于“第三方框架”文件夹中。)
  • 尝试将libswitftavfoundation.dylib复制到项目的Frameworks文件夹中
  • 我最近没有换新电脑

    我在运行iOS 11.0.23(15A432)的iPhone7+和运行iOS 9.3.5(13G36)的iPadMini1上也有同样的结果

    我也试过:

    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编译器问题,与此无关。就这样解决了…太好了,救了我一天!谢谢:)从手机中删除应用程序,然后删除派生数据并尝试再次构建到设备,这为我解决了问题。