dyld:库未加载:@rpath/libswift_stdlib_core.dylib 在 iPhone 上运行时
Posted
技术标签:
【中文标题】dyld:库未加载:@rpath/libswift_stdlib_core.dylib 在 iPhone 上运行时【英文标题】:dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib when running on iPhone 【发布时间】:2014-06-04 23:48:31 【问题描述】:更新 2: 这是一个涉及 ios 8 和 Xcode 开发者测试版的老问题。问题是 Swift 标准库没有包含在 iPhone 4s iOS 8 beta 中。该问题已在发行版中得到解决。
更新:我已经厌倦了测试版软件带来的错误和崩溃,所以我决定将我的手机重置为 iOS 7.1.1,现在错误是 gone...我不知道发生了什么,但我会假设它是一个错误,因为 iOS 8 仍处于测试阶段。我将向 Apple 提交错误报告,并希望下一个种子能够解决它。
与我之前的许多其他人一样,在我的 iPhone(4S 运行 iOS 8.0 beta 1)上运行基于 swift 的应用程序时,我收到以下错误消息:
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/
CDC7263B-9F18-4369-87CC-F36DB5163B99/TESTPROJECT.app/TESTPROJECT
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/
CDC7263B-9F18-4369-87CC-F36DB5163B99/TESTPROJECT.app/Frameworks/
libswift_stdlib_core.dylib: mmap() error 1 at address=0x00206000,
size=0x00128000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/
CDC7263B-9F18-4369-87CC-F36DB5163B99/TESTPROJECT.app/Frameworks/
libswift_stdlib_core.dylib
在 iOS 模拟器(iPhone 4S)上运行时,我得到以下信息(多次):
SetAppThreadPriority: setpriority failed with error 45
- 这是一个新的单视图应用程序项目,由 Xcode 6 beta 的内置模板生成,没有我自己的代码。 (空应用程序也会发生) - 我已经尝试过here找到的解决方案(重启Xcode)
我似乎找不到任何其他方式来移动/访问所需的 swift 库。
【问题讨论】:
你手机上的操作系统是什么版本? 对不起。我虽然我把它放进去了。它是 iOS 8.0 Beta 1SetAppThreadPriority
是正常的,它是 beta 中的一个框架错误。它也出现在 WWDC 演示文稿中。
谢谢,我在演示文稿中没有注意到。
【参考方案1】:
对我来说,退出并重新启动 Xcode 让这一切消失了。
【讨论】:
如问题中所述,重新启动 Xcode 并不能解决问题。 (我也进一步澄清了这部分。)【参考方案2】:我遇到了同样的问题,我认为这可能是因为必须将应用程序配置为动态加载某些框架。无论如何,将“运行路径搜索路径”构建设置更改为“@executable_path/Frameworks”似乎可以解决问题。
我猜 Xcode 会为新项目自动设置此设置,但旧项目可能需要手动修复。在我的旧项目中,它是空白的。
【讨论】:
这解决了我的问题,谢谢。顺便说一句,它是“运行路径搜索路径”,而不是“运行时搜索路径”。 并且“运行路径搜索路径”在项目/链接中 我独立得出了同样的结论;在这里查看我的答案:***.com/a/25247890/341994【参考方案3】:我在模拟器中遇到了这个问题。我尝试了这里列出的一些设置http://ikevin.tw/?p=174。
总之,定义模块 -> 是,嵌入式内容包含 Swift 代码 -> 是,产品模块名称 -> [我的产品名称]。
这些更改让我能够启动和运行。
诀窍在于,之后,我恢复了更改以查看其中哪些确实有所作为。恢复所有这些后,该应用程序仍然启动。因此,完全不清楚究竟是什么导致该应用程序最终启动。
【讨论】:
似乎没有解决我的设备问题。我事件下载并尝试了示例项目。 尝试在模拟器上运行时也不适合我。【参考方案4】:我猜你的 iPhone 4S 低于 iOS 6。我们还在 iOS 6 和 7 上对 iPhone 4S 进行了回归测试,但一切都很好。 iOS 5 和 5.1 上的设备与您遇到的错误相同。
【讨论】:
我的手机运行的是 iOS 8.0 beta 1 这是我找到的解决方案最接近的答案。问题出在我手机上安装的操作系统上。降级到 iOS 7 解决了这个问题,这告诉我当前的测试版不能正常工作(大惊喜......)【参考方案5】:我在使用带有生产证书的 Ad Hoc(或企业)移动设备时遇到了这个问题。切换到开发证书和 mobileprovision 解决了这个问题。
【讨论】:
这是根本原因。 Swift 应用程序需要 libswift_stdlib_core.dylib。到目前为止,在所有 iOS 8 Beta(1 到 5)上,设备都拒绝加载使用分发标识签名的 dylib。我听说的唯一解决方法是使用开发人员身份(和匹配的配置文件)。 修复方法是重新生成您的生产证书,现在刚刚完成,并且有效。【参考方案6】:当您在升级 Beta 版时遇到此类错误时,有 99% 的情况是 ~/Library/Caches/com.apple.dt.Xcode* 目录中的缓存。删除这些并重建。
【讨论】:
【参考方案7】:我在一个探索性项目中遇到了同样的问题。当我尝试在设备上构建时,我得到了错误。我所要做的就是在“代码签名”中设置“配置文件”,一切正常。
【讨论】:
以上是关于dyld:库未加载:@rpath/libswift_stdlib_core.dylib 在 iPhone 上运行时的主要内容,如果未能解决你的问题,请参考以下文章
dyld:库未加载:@rpath/libswiftCore.dylib
dyld:库未加载:@rpath/libswiftAVFoundation.dylib