dyld: 库未加载:@rpath/libswiftAVFoundation.dylib

109

我刚刚升级到Xcode 7和Swift 2,并修复了转换过程中出现的错误。我终于成功构建了项目,但在启动屏幕后,我收到一个错误消息:

dyld: 库未加载:@rpath/libswiftAVFoundation.dylib 引用自:/var/mobile/Containers/Bundle/Application/...
原因:找不到合适的映像。发现: /private/var/mobile/Containers/Bundle/Application/.../Frameworks/libswiftAVFoundation.dylib: mmap() 错误=1 验证 '/private/var/mobile/Containers/Bundle/Application/.../Frameworks/libswiftAVFoundation.dylib' 的第一页

我以前看到过这种错误,但是针对其他框架,我无法解决我的问题。是否有一种方法可以通过将我的框架添加到某个地方来绕过此错误?


好的,经过多次遇到这个问题后,这是唯一有效的解决方法。不确定为什么其他解决方案不起作用,但我按照这里的说明进行了操作:https://dev59.com/TFwY5IYBdhLWcg3wWWm0#32730393 - coracora
7
我在换新的Mac后遇到了这个问题。原因是缺少苹果WWDR中间证书。 - Morten Holmgaard
可能是重复问题 原因:没有找到合适的图像。 - trojanfoe
只需清理项目并重新运行。 - onmyway133
12个回答

192

尝试进行清理、构建,然后运行项目。对我很有用。


2
对我来说没有用,我遇到了一个类似的Swifty.json问题 :( - Hatchmaster J
4
对我有用。由于我的证书已被吊销,我一直遇到这个问题。现在它没问题了。 - Adam Studenic
1
非常感谢你的帮助!我刚刚更新了我的iOS开发证书,但是遇到了这个令人沮丧的错误。令人难以置信的是,Xcode的错误消息不直观,很难检查。 - Gabcvit
1
在 Xcode 10.2 中尝试了几个不同的解决方案几个小时后,都没有奏效。但是在 Xcode 10.1 中运行该项目,它可以正常工作(将 Always Embed Swift Standard Libraries 设置为 Yes)。在寻找解决方案时,我读到有人说问题出在 Swift 编译器上,也许在 10.2 版本中存在问题。 - Carlos Parada

55

在 Xcode 8 中更新构建设置,将 始终嵌入 Swift 标准库 设置为 对我很有效。


我认为这是一个可能正确的答案。来自Apple文档:“如果你正在开发一个不使用Swift但嵌入了像框架这样的内容的应用程序,Xcode将不会在你的应用程序中包含这些库。” 参考链接:https://developer.apple.com/library/content/qa/qa1881/_index.html - David Pettigrew
1
我正在尝试将一个旧的Objective-C项目(部分)转换为Swift。将“始终嵌入Swift标准库”设置为是,解决了我的问题。 - Darrell Root

30

以上解决方法都不适用于我。最终问题出在我的签名证书信任设置上。它们被设置为“始终信任”,这似乎引起了这个问题。将其切换回“使用系统默认值”对我有帮助。

在我的情况下,我最初更改了证书的信任设置,因为我在远程构建时遇到了问题。通过全局切换信任设置为“使用系统默认值”和SSL的“始终允许”,我能够解决这两个问题。

希望这对某些人有帮助。


25

当被标记为正确答案的解决方法对我无效时,我添加了以下内容到"Build Settings > Linking > Runpath Search Paths"中:

@executable_path/Frameworks

7

尝试移除我的配置文件和应用程序证书时,遇到了这个问题。然后所有我的swift项目都出现了这个问题。经过将近一个小时的努力,我发现只需要简单地进行以下操作即可清理项目:

单击“Product” -> “Clean”(或使用键盘快捷键CMD-Shift-K

之后项目就可以正常运行了。


6
下面有一个类似的问题,那里的答案可能会提供一些帮助。 dyld: Library not loaded: @rpath/libswiftCore.dylib 对我来说,唯一有效的解决方案是按照@morten-holmgaard在他的评论中建议的那样操作。
我还尝试将构建设置中的“嵌入式内容包含Swift代码”标志更改为true,但没有效果。

2

这篇文章很有帮助,谢谢!这里的其他解决方案都没能解决我的问题,但是通过将 @rpath 添加到“运行路径搜索路径”链接器设置中,我终于让它正常工作了。 - caughtinflux

2

将构建设置->“嵌入内容包含Swift代码”标志改为true/yes对我有用。


2

我在使用Xcode 9时遇到了这个问题。以下方法对我有用:

项目 > 构建设置 > Swift编译器 - 搜索路径:将 "导入路径" 设置为 $(PROJECT_DIR)(递归)


1
在Xcode 10中遇到了这个问题,它也起作用了!干得好! - petrosmm

1

有两种解决方法:

解决方案1:

  1. 退出 Xcode (cmd + Q)
  2. 打开并 清理项目 (cmd + shift + k)
  3. 现在,运行项目应该可以正常工作

解决方案2:

控制台日志本身指出动态链接编辑器 (dyld) 无法加载库。为了解决这个问题,请按照以下步骤进行:

  1. 选择 项目 -> 构建设置 ->
  2. 转到 构建选项 选项卡 -> 选择 ‘始终嵌入 Swift 标准库’ 到 ‘
  3. 现在,运行项目应该可以正常工作

Screenshot with steps


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接