dyld:未加载库:@ rpath / libswiftCore.dylib /找不到图像

时间:2014-09-29 16:51:39

标签: ios swift xcode6

我正在运行我的应用程序从xcode到我的iOS设备,我在iOS设备上得到了这个和黑屏。

控制台文字:

dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/10DB2FE8-EF09-4857-B4AC-0DB2E4419D6F/App-Name.app/App-Name           
Reason: image not found        
(lldb)

Screenshot added

27 个答案:

答案 0 :(得分:86)

尝试将以下行添加到目标的运行路径搜索路径

@executable_path/Frameworks

your_target - >构建设置 - >链接 - > 运行路径搜索路径

答案 1 :(得分:44)

我有同样的问题。我最终在以下位置添加了框架:

  1. General > Embedded Binaries
  2. General > Linked Frameworks and Libraries
  3. Build Phases > Link Binaries with Libraries
  4. 嵌入式二进制文件似乎是我的关键。

答案 2 :(得分:29)

对我来说,有助于将@executable_path/Frameworks添加到项目运行路径搜索路径,而不是目标。 enter image description here your_project - >构建设置 - >链接 - >运行路径搜索路径

答案 3 :(得分:14)

其他所有解决方案都没有帮助我,但删除了Xcode的派生数据目录,确定了一切。

答案 4 :(得分:11)

在使用Swift对象更新Obj-C嵌入式框架后,我不得不将“嵌入式内容包含Swift代码”切换为“是”以使我的Obj-C应用程序正常工作。

答案 5 :(得分:10)

哦,是的。我面临着在解决方案上花费数小时的问题。 您可以尝试在Build Settings>下设置“Always Embed Swift Standard Libraries”为“Yes”。构建选项

dyld: Library not loaded: @rpath/libswiftCore.dylib

(不要忘记在之后移动+ cmd + K项目)

答案 6 :(得分:7)

在框架目标(不是应用目标)中,转到构建设置>构建选项>始终将标准Swift库嵌入YES。

这解决了我的问题!

答案 7 :(得分:5)

我遇到了同样的问题,设置正确的代码符号标识解决了问题(Build settings-> Code Signing Identity)。

根据Apple技术问题“iOS 8发布后创建的所有企业版和标准iOS开发人员证书都在适当的位置使用新的团队ID字段以允许Swift语言应用程序运行”

答案 8 :(得分:5)

我修复了Xcode Derived Data目录中的所有内容:

  

〜/库/开发商/ Xcode中/ DerivedData

祝你好运!

答案 9 :(得分:4)

我在命令行项目(Xcode 10.2和macOS 10.14.3)中遇到此错误

解决方案是更新到macOS 10.14.4

  

Swift命令行项目将无法在macOS 10.14.3及更早版本上运行,除非您安装了Swift 5 Runtime Support for Command Line Tools软件包。如果没有该软件包,Swift命令行项目将在启动时崩溃,并显示“ dyld:未加载库”错误。 (46824656)

来自Swift 5 Release Notes for Xcode 10.2

答案 10 :(得分:4)

就我而言,此问题在我正在使用Swift框架(AirWatch SDK)的Objective-c项目中出现。

解决方案: 如前所述,我已经使用Xcode 9.3和11.0.1 iOS解决了此问题:

  1. 将快速框架拖放到项目中,然后移动到项目的默认Framework文件夹中。
  2. 然后将它们添加为嵌入式二进制文件,如屏幕截图所示。
  3. 将框架状态从必需更改为可选,如屏幕快照所示。 (构建阶段>使用库链接二进制文件)

enter image description here

  1. 在构建设置中将始终嵌入Swift标准库设置为

  2. 设置 Subpath 并将目标位置选择为 Framework 作为在“构建阶段”>“嵌入框架”中添加的框架 如屏幕截图所示。 enter image description here

希望它将对某人有所帮助。

答案 11 :(得分:3)

我有同样的错误信息,这就是我解决它的方法:

问题来自Xcode自动生成的证书。我不得不撤销这些证书,dans从developer.apple.com生成它们

解决方案是: - 访问developer.apple.com / certificates - >撤销证书 或者进入Xcode>偏好>帐户>查看详细信息>选择Sigining身份> clic setting whell>撤消 - 得到developper.apple.com并按照说明生成新证书 - 在我的项目中的Xcode中:转到Code Signing Identity并使用生成的证书对两个Debug行进行签名 - 两个发布行都设置为" iOS Developer" - 然后项目>清洁 - 在设备上构建和运行

答案 12 :(得分:3)

@ Saikiran的回答是有效的。

我的证书是在iOS 8发布之前生成的。我撤销了所有证书并重新生成了所有配置文件,并立即解决了我的问题。

我没有足够的声誉来投票@Saikiran的答案,但这肯定有助于解决问题。

答案 13 :(得分:3)

当使用与当前正在使用的Swift版本不同的Swift版本的框架构建时,也会发生此错误消息,例如,如果你升级Xcode。

答案 14 :(得分:2)

对我来说已经设定了选项

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
项目中

为YES - >构建设置 - >构建选项

(通过Cocoapods的Namirial框架)

答案 15 :(得分:2)

以上解决方案均不适用于我。我更改了钥匙串中的iPhone开发人员证书信任设置。它应该是始终信任。将其更改为使用系统默认值。双击“钥匙串”中的证书以打开选项屏幕 是从this博客中发现的

答案 16 :(得分:2)

我已经正确设置了Runpath搜索路径,但它仍然无法正常工作。 @Justin Domnitz的回答让我走上正轨:设置"始终嵌入Swift标准库"在我的目标构建设置中为是对我有用。

答案 17 :(得分:1)

似乎这个问题是由于将Swift文件包含在objective-c自定义框架中引起的。还不确定是否相关,但我的应用目标也是在objective-c中构建的。还在调试中构建模拟器。 Haven尚未验证发布或存档版本。
此外,项目目标的Runpath Search设置被设置为" @ executable_path / Frameworks",在它们被设置为的框架的目标设置中:" @ executable_path / Frameworks"和" @ loader_path / Frameworks"。

在尝试重建自定义框架并重新连接到应用目标,清除派生数据文件夹和其他一些建议之后,最终对我有用的是更改自定义框架项目(不是应用目标)的Project目标中的构建设置:& #34;始终嵌入Swift标准库"到"是"。似乎应用目标的设置设置为什么并不重要。我通过重置模拟器和重建来验证这一点。这与Daniele Ceglia的答案类似,但我无法添加评论并希望提供更多清晰度。

答案 18 :(得分:1)

对我来说清理项目解决问题!

答案 19 :(得分:1)

我也遇到了这样的问题 所有其他方式都无法帮助我, 所以我以愚蠢的方式做到了 从头开始创建新项目和pod安装 在确认它工作正常后,我复制了所有类文件和故事板文件,最后完成了! 我认为这是最后一种方式,也许可以帮助你

答案 20 :(得分:1)

在我开始包含Swift文件的Objective-C项目中,我遇到了类似的问题。

就我而言,我在主项目中创建了两个目标,并添加了一个Swift空文件,该文件创建了桥接头文件和一些配置,但我仅将其标记为一个目标的成员。第一个目标可以正常工作,而第二个目标不能正常工作,我注意到构建设置的不同之处在于此设置:

  

运行路径搜索路径-> $(inherited)@executable_path/Frameworks

我还需要引用Objective-C桥接标题到之前创建的文件:

  

Objective-C桥接标头-> pathTo/Target-Bridging-Header.h

添加这两个设置后,第二个目标开始正常工作。

答案 21 :(得分:1)

尝试清理build文件夹,我遇到了同样的问题,并通过以下方式解决了问题: 产品->清理构建文件夹

答案 22 :(得分:1)

我有同样的错误信息,这是我解决它的方式: 发生这种情况是因为我更改了捆绑包标识符,因此我只是将旧的捆绑包ID重新开始工作

答案 23 :(得分:0)

我之前在iPod touch iOS 9.3中遇到过这个问题。我使用了这个post中提到的所有方法,但没有一个工作。 我检查了我的项目设置。在另一个链接标志中,我发现我添加了-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null

此标志可防止越狱手机中的dyld插入。当我删除此标志时,可以再次启动该应用程序。我不确定它为什么有效。因为在iPhone iOS 10中我不必删除这一行。但它确实在iPod touch iOS 9.3中有效。如果你和我一样的情况,请检查一下。

答案 24 :(得分:0)

我尝试了上面的一些案例,似乎没有解决我的问题。我为项目使用git和cocoapods,一旦我提交了新的提交,错误就消失了。

答案 25 :(得分:0)

For Me重启模拟器解决了这个问题。

答案 26 :(得分:0)

请检查* .framework是否存在_CodeSignature签名框架目录。 如果没有_CodeSignature文件夹, 导航到构建阶段,单击+添加新的复制文件阶段以创建复制文件。 之后,请参考* .framework并选择Code Sign On Copy