dyld: Library not loaded: @rpath/libswiftCore.dylib / Image not found
我将应用程序从xcode运行到我的iOS设备,iOS设备上会显示这个和黑屏。
控制台文本:
1 2 3 4 | 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) |
尝试将以下行添加到目标的runpath搜索路径中。
1 | @executable_path/Frameworks |
您的目标->构建设置->链接->运行路径搜索路径
我也有同样的问题。我最终在以下位置添加了框架:
嵌入的二进制文件似乎是我的关键。
对于我来说,帮助添加
其他的解决方案都没有帮助我,但是所有的问题都是通过删除Xcode的派生数据目录来解决的。
在用Swift对象更新obj-c嵌入式框架之后,我必须将"Embedded Content Contains Swift Code"切换为"Yes",才能让我的obj-c应用程序工作。
哦,是的。我花了几个小时来解决这个问题。您可以尝试在构建设置>构建选项下将"始终嵌入Swift标准库"设置为"是"。
(别忘了在项目结束后按Shift+Cmd+K键)
在框架目标(而不是应用程序目标)中,转到构建设置>构建选项>始终将标准Swift库嵌入为是。
这帮我解决了问题!
我通过从xcode派生的数据目录中删除所有内容来修复:
~/Library/Developer/Xcode/DerivedData
祝大家好运!
我也面临同样的问题,设置正确的代码签名标识解决了这个问题(构建设置->代码签名标识)。
根据苹果技术问题,"iOS 8发布后创建的所有企业和标准iOS开发人员证书在适当的位置都有新的团队ID字段,以允许运行Swift语言应用程序。"
我在命令行项目(Xcode10.2和MacOS 10.14.3)中遇到了这个错误。
解决方案是更新到MacOS 10.14.4
Swift command line projects won’t run on macOS 10.14.3 and earlier unless you install the Swift 5 Runtime Support for Command Line Tools package. Without that package, Swift command line projects crash on launch with"dyld: Library not loaded" errors. (46824656)
来自Swift 5 Xcode 10.2发行说明
在我的例子中,这个问题出现在Objective-C项目中,在这个项目中我使用了一个Swift框架(Airwatch SDK)。
解决:我已经用xcode 9.3和11.0.1 iOS解决了这个问题,如下所述步骤:
在构建设置中将"始终嵌入Swift标准库"设置为"是"。
在构建阶段>嵌入框架中设置子路径并选择目标作为添加框架的框架如截图所示。
希望它能帮助别人。
我有同样的错误信息,我就是这样解决的:
问题来自Xcode自动生成的证书。我不得不撤销这些证书,然后从developer.apple.com生成它们。
解决方案是:-转到developer.apple.com/certificates——>吊销证书或者进入xcode>首选项>帐户>查看详细信息>选择签名标识>clic设置whell>撤销-访问developer.apple.com并按照说明生成新证书-在我的项目中的xcode中:转到代码签名标识,并用生成的证书对两个调试行进行签名。-两个发布行都设置为"iOS开发人员"-然后项目>清理-构建并在设备上运行
@塞基兰的回答有效。
我的证书是在iOS 8发布之前生成的。我撤销了所有证书,重新生成了所有配置文件,它立即解决了我的问题。
我没有足够的声誉去投票支持@saikiran的答案,但这确实帮助解决了问题。
我已经正确设置了运行路径搜索路径,但它仍然不起作用。@JustinDomnitz的回答让我走上了正确的道路:在我的目标的构建设置中将"总是嵌入Swift标准库"设置为"是",这对我来说是个技巧。
如果在其他Swift版本中使用框架构建,则当前正在使用的版本(例如,如果升级xcode),也可能出现此错误消息。
我也有这样的问题其他办法都帮不了我,所以我做了愚蠢的方式从头开始创建新项目和pod安装在确认它正常工作后,我复制了所有类文件和故事板文件,最后完成了!我想这是最后的办法,也许能帮到你
似乎这个问题是由将swift文件包含到objective-c自定义框架中引起的。也不确定是否相关,但我的应用程序目标也是在Objective-C中构建的。也在调试中构建到模拟器。尚未验证发布或存档版本。此外,项目目标的运行路径搜索设置被设置为"@executable_path/frameworks",在框架的目标设置中,它们被设置为"@executable_path/frameworks"和"@loader_path/frameworks"。
在尝试重建自定义框架并重新附加到应用程序目标、清除派生数据文件夹和其他一些建议之后,最终对我有效的是将自定义框架项目(而不是应用程序目标)的项目目标内的生成设置更改为"始终嵌入Swift标准库"为"是"。应用程序目标的设置似乎无关紧要。我通过重置模拟器和重建来验证这一点。这与丹尼尔塞格里亚的回答类似,但我无法添加评论,希望提供更清晰的答案。
在一个客观C项目中,我也遇到了类似的问题,在这个项目中我开始包含swift文件。
在我的例子中,我在主项目中创建了两个目标,并添加了一个swift空文件,它创建了一个桥接头文件和一些配置,但我只将其标记为一个目标的成员。第一个目标工作正常,但第二个目标不正常,我注意到构建设置的不同之处在于此设置:
Runpath Search Paths ->
$(inherited) and@executable_path/Frameworks
我还需要将Objective-C桥接头引用到之前创建的文件:
Objective-C Bridging Header ->
pathTo/Target-Bridging-Header.h
添加这两个设置后,第二个目标开始正常工作。
对我来说已经成功了,选择
1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES |
在"项目"->"生成设置"->"生成选项"中选择"是"。
(椰子的纳米框架)
我有同样的错误信息,我就是这样解决的:发生这种情况是因为我更改了包标识符,所以我只放置了旧的包ID,它又开始工作了。
尝试清理构建文件夹,我遇到了同样的问题,并通过以下方式解决了它:产品->清理构建文件夹
为我清理项目解决问题!
以上所有的解决方案都不适合我。我在keychain中更改了iPhone开发者证书信任设置。它应该永远是信任的。将其更改为使用系统默认值。双击keychain中的证书打开选项屏幕从这个博客中发现这个
对我来说,重启模拟器解决了这个问题。
我以前在iPod touch iOS 9.3中遇到过这个问题。我使用了这篇文章中提到的所有方法,但没有一个有效。我检查了我的项目设置。在另一个链接标记中,我发现我添加了
此标志阻止Dyld插入越狱电话。当我删除此标志时,应用程序可以再次启动。我不知道它为什么起作用。因为在iPhone SE iOS 10中,我不需要删除这一行。但它在iPod touch iOS 9.3上确实有效。所以,如果你和我有同样的情况,就检查一下。
如果存在_codesignature signature framework目录,请检查*.framework。如果没有代码签名文件夹,导航到构建阶段,单击+添加新的复制文件阶段以创建复制文件。之后,参考*.framework并选择代码登录副本
我试过上面的一些案例,但似乎没能解决我的问题。我在一个项目中使用Git和Cocoapods,一旦我作出新的承诺,错误就消失了。