dyld:未加载库:带有iOS8的@rpath

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dyld:未加载库:带有iOS8的@rpath相关的知识,希望对你有一定的参考价值。

我正在使用Xcode6和ios8创建一个iOS框架。当我将其与iOS应用程序链接并尝试在设备上运行时,我收到此错误

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
  Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
  Reason: image not found

框架的“Runpath搜索路径”构建设置默认设置为

'@executable_path/Frameworks', '@loader_path/Frameworks'

我找不到任何与此相关的文档。这是Xcode6引入的新功能,我希望通过简单地将框架包含到任何需要它的应用程序中来实现它。

答案

使这项工作

  1. 在框架项目设置中,将安装目录从“/ Library / Frameworks”更改为“@executable_path /../ Frameworks”
  2. 在包含此框架的项目中,添加复制文件阶段并将此框架复制到“Frameworks”文件夹。执行此操作后,请确保此框架列在“嵌入式​​二进制文件”部分下。
另一答案

我使用Cocoapods安装了第三方库。得到了同样的错误,尝试了一切,但终于意识到我没有use_frameworks!在我的pod文件中。

所以删除了当前安装的库,添加了use_frameworks! pod文件中的行,重新安装了库,所有这些都为我工作。

另一答案

使链接二进制文件和框架中显示未加载的库从必需更改为可选。它现在工作得很好

另一答案

使用this answer解决问题。根据@ vladof81:

在目标的“常规”选项卡中,有一个“嵌入二进制文件”字段。当您添加框架时,崩溃就会得到解决。

参考是Apple Developer Forums上的here

另一答案

我在通过CocoaPods安装的库上遇到此错误。清理构建文件夹(cmd + option + shift + k)然后干净(cmd + shift + k)最终解决了这个问题。

另一答案

检查您是否可以在上下文中找到框架:

构建阶段>嵌入框架>

如果不是在项目目录的“框架”部分中添加该框架后在“嵌入框架”中添加该框架。 enter image description here

另一答案

对我而言,由于SSL问题,我已将我的开发人员,我的Mac(Keychain)上的分发证书设置为我的其他项目之一的“Always Trust”。我不得不将它们改回“使用系统默认值”。它对我有用!!

另一答案

如果你正在使用迦太基

在终端上运行carthage update

转到项目设置 - >构建阶段 - >迦太基复制框架

在输入文件中添加行:$(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework

将此行添加到输出文件:$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/TTTAttributedLabel.framework

另一答案

除上述解决方案外,还要重新检查应用程序中包含的框架路径

构建设置 - >搜索路径 - >框架搜索路径

另一答案

我也有同样的问题,我无法启动应用程序和应用程序崩溃上面的消息:

dyld:未加载库:@rpath / FrameworkName.framework / FrameworkName引用自:/ private / var / mobile / Containers / Bundle / Application / xxxxxxxxxxxxxxxxxxx

原因:找不到图像

这是我帮助我解决此错误的方法:

1.请从设备中删除您的应用,清理构建并重建并在设备上运行。

2.如果以上步骤对您没有帮助,请检查以下设置: 从“TARGET”>“Build Settings”>“Runpath Search Paths”然后检查值“$(inherited)”和“@ executable_path / Frameworks”,随意添加它们不存在的情况。

构建您的应用程序并在设备上运行它

另一答案

当这些解决方案不起作用时:

  1. (可选)从here获取有关不同搜索路径类型的清晰知识
  2. 确保在.framework中添加了Build Settings -> Framework Search Paths文件路径。您可以将所有框架文件保存在App/libs/中的某个位置并添加此文件夹并以递归方式启用。
  3. 确保在.a中添加了Build Settings -> Library Search Paths文件路径。

enter image description here

以上是关于dyld:未加载库:带有iOS8的@rpath的主要内容,如果未能解决你的问题,请参考以下文章

CreateML 错误 dyld:未加载库:@rpath/libswiftCreateML.dylib

dyld:库未加载:@rpath/libswift_stdlib_core.dylib 在 iPhone 上运行时

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

如果使用模拟器,从 Xcode 和 xcodebuild 运行 xctests 会失败 - dyld:未加载库:@rpath/libswiftSwiftOnoneSupport.dylib 问题 -

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

未加载库:@rpath/libswiftSwiftOnoneSupport.dylib