我正在运行我的应用程序从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)
尝试将以下行添加到目标的Runpath搜索路径。
@executable_path/Frameworks
your_target - >构建设置 - >链接 - >运行路径搜索路径
〜/资源库/开发/ Xcode中/ DerivedData
祝你好运!
就我而言,这个问题出现在Objective-c项目中,我正在使用Swift框架(AirWatch SDK)。
解决方案:我已经解决了Xcode 9.3和11.0.1 iOS的这个问题,如下所述:
希望它会帮助某人。
我有相同的错误信息,这就是我解决它的方式:
问题来自Xcode自动生成的证书。我不得不撤销这些证书,dans从developer.apple.com生成它们
解决方案是: - 转到developer.apple.com / certificates - >撤销证书或进入Xcode>首选项>帐户>查看详细信息>选择签名身份> clic setting whell> revoke - 得到developper.apple.com和按照说明生成新证书 - 在我的项目中的Xcode中:转到代码签名身份并使用生成的证书对两个Debug行进行签名 - 两个版本行都设置为“iOS Developer” - 然后项目> clean - 在设备上构建并运行
@ Saikiran的回答是有效的。
我的证书是在iOS 8发布之前生成的。我撤销了所有证书并重新生成了所有配置文件,它立即解决了我的问题。
我没有足够的声誉来投票@Saikiran的答案,但这肯定有助于解决问题。
当使用与当前正在使用的Swift版本不同的Swift版本的框架构建时,也会发生此错误消息,例如,如果你升级Xcode。
我已经正确设置了Runpath搜索路径,但它仍然无法正常工作。 @Justin Domnitz的回答让我走上正轨:在我的目标构建设置中将“Always Embed Swift Standard Libraries”设置为Yes对我来说是个窍门。
对我来说已经设定了选项
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
项目中的“是” - >“构建设置” - >“构建选项”
(通过Cocoapods的Namirial框架)
上述解决方案均不适合我。我在Keychain中更改了iPhone Developer Certificate信任设置。它应该始终信任。将其更改为使用系统默认值。双击Keychain中的证书以打开从this博客发现的选项屏幕
我有相同的错误消息,这就是我如何解决它:这是因为我改变了捆绑标识符,所以我只是把旧捆绑ID,它开始再次工作
似乎这个问题是由于将Swift文件包含在objective-c自定义框架中引起的。还不确定是否相关,但我的应用目标也是在objective-c中构建的。还在调试中构建模拟器。尚未验证发布或存档版本。 此外,项目目标的Runpath Search设置被设置为“@ executable_path / Frameworks”,在它们被设置为的框架的目标设置中:“@ executable_path / Frameworks”和“@ loader_path / Frameworks”。
在尝试重建自定义框架并重新连接到应用程序目标,清除派生数据文件夹和其他一些建议之后,最终对我有用的是更改自定义框架项目(不是应用程序目标)的Project目标中的构建设置:“Always Embed Swift标准库“至”是“。似乎应用目标的设置设置为什么并不重要。我通过重置模拟器和重建来验证这一点。这与Daniele Ceglia的回答相似,但我无法添加评论并希望提供更多清晰度。
我有同样的问题。我最终在以下位置添加了框架:
General > Embedded Binaries
General > Linked Frameworks and Libraries
Build Phases > Link Binaries with Libraries
嵌入式二进制文件似乎是我的关键。
对我来说清理项目解决问题!
我也遇到了这样的问题所有其他方法都无法帮助我,所以我以愚蠢的方式完成了从头开始创建新项目和pod安装并确认它正常工作后,我复制了所有类文件和故事板文件,最后完成了!我认为这是它的最后一种方式,也许可以帮到你
我在Objective-C项目中遇到了类似的问题,我开始包含Swift文件。
在我的例子中,我在主项目中创建了两个目标,并添加了一个Swift空文件,它创建了一个桥接头文件和一些配置,但我只将它标记为一个目标的成员。第一个目标正常工作,但第二个目标没有,我注意到构建设置的差异是这个设置:
Runpath搜索路径 - >
$(inherited)
和@executable_path/Frameworks
我还需要将Objective-C Bridging Header引用到之前创建的文件:
Objective-C Bridging Header - >
pathTo/Target-Bridging-Header.h
添加这两个设置后,第二个目标开始正常工作。
尝试清理构建文件夹,我遇到了同样的问题,我这样解决了:产品 - >清理构建文件夹
对于我重启模拟器解决了这个问题。
我尝试了上面的一堆案例,似乎没有解决我的问题。我使用git和cocoapods作为项目,一旦我提交了新的提交,错误就消失了。
我之前在iPod touch iOS 9.3中遇到过这个问题。我使用了这个post中提到的所有方法,但没有一个工作。我检查了我的项目设置。在另一个链接标志中,我发现我添加了-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
。
此标志可防止在越狱手机中插入dyld。当我删除此标志时,可以再次启动该应用程序。我不确定它为什么有效。因为在iPhone iOS 10中我不必删除这一行。但它确实在iPod touch iOS 9.3中有效。如果你和我一样的情况,请检查一下。
请检查* .framework是否存在_CodeSignature签名框架目录。如果没有_CodeSignature文件夹,请导航到Build Phases,单击+添加New Copy File Phase以创建Copy Files。之后,参考* .framework并选择Code Sign On Copy
对我来说,有助于将@executable_path/Frameworks
添加到项目Runpath搜索路径,而不是目标。 your_project - >构建设置 - >链接 - >运行路径搜索路径
其他解决方案都没有帮助我,但是通过删除Xcode的Derived Data目录解决了所有问题。
在使用Swift对象更新Obj-C嵌入式框架后,我不得不将“嵌入式内容包含Swift代码”切换为“是”以使我的Obj-C应用程序正常工作。
在Framework Target(不是app目标)中,转到Build Settings> Build Options> Always Embed Standard Swift Libraries为YES。
这解决了我的问题!
我在命令行项目中遇到此错误(Xcode 10.2和macOS 10.14.3)
解决方案是更新到macOS 10.14.4
除非您安装Swift 5运行时支持命令行工具包,否则Swift命令行项目将无法在macOS 10.14.3及更早版本上运行。如果没有该软件包,Swift命令行项目会在启动时因“dyld:Library not loaded”错误而崩溃。 (46824656)
我遇到了同样的问题,设置正确的代码符号标识解决了问题(Build settings-> Code Signing Identity)。
根据Apple技术问题“iOS 8发布后创建的所有企业版和标准iOS开发人员证书都在适当的位置使用新的团队ID字段以允许Swift语言应用程序运行”