dyld: Library not loaded: @rpath with iOS8
我正在用xcode6和ios8创建iOS框架。当我将此链接到iOS应用程序并尝试在设备上运行时,我会收到此错误
1 2 3 | 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 |
框架的"运行路径搜索路径"生成设置默认设置为
1 | '@executable_path/Frameworks', '@loader_path/Frameworks' |
我找不到任何与此相关的文档。这是Xcode6引入的新功能,我希望它只需将框架包含到任何需要它的应用程序中就可以工作。
为了让这个工作
在框架项目设置中,将安装目录从"/library/frameworks"到"@executableu path/../frameworks"
在包含此框架的项目中,添加复制文件阶段并将此框架复制到"frameworks"文件夹。一旦你这样做了,确保这个框架列在"嵌入的二进制文件"部分下面。
使用此答案解决了问题。根据@vladof81:
在目标的"常规"选项卡中,有一个嵌入的二进制文件字段。当您在其中添加框架时,崩溃将得到解决。
参考资料在苹果开发者论坛上。
我在通过cocoapods安装的库中得到这个错误。清理build文件夹(
检查您是否可以在以下上下文中找到框架:
构建阶段>嵌入框架>
如果不只是在项目目录的"框架"部分添加框架之后,在"嵌入框架"中添加框架。
对我来说,这是因为SSL的问题,我已经将我的开发人员、Mac(keychain)上的分发证书设置为"始终信任"我的另一个项目。我不得不把它们改回"使用系统默认值"。那时候对我有用!!
如果你用的是迦太基
在终端上运行
转到项目设置->构建阶段->迦太基复制框架
在输入文件中添加行:
将此行添加到输出文件:
当这些解决方案不起作用时:
除上述解决方案外,请重新检查应用程序中包含的框架路径
生成设置——>搜索路径——>框架搜索路径
使显示未加载的库在链接的二进制文件和框架中从必需更改为可选。它现在工作得很好
我用cocoapod安装了第三方库。同样的错误,尝试了所有的方法,但最终意识到我没有使用框架!在我的POD文件中。
所以删除了当前安装的库,添加了使用框架!行在pod文件,重新安装库,所有工作为我。
我也遇到了同样的问题,我无法启动应用程序,应用程序崩溃,上面的消息:
未加载dyld:library:@rpath/frameworkname.framework/frameworkname引用自:/private/var/mobile/containers/bundle/application/XXXXXXXXXXXXXXXXX
原因:找不到图像
以下是帮助我解决此错误的方法:
1.请从设备中删除您的应用程序,清理生成并重新生成,然后在设备上运行。
2.如果上述步骤对您没有帮助,请检查以下设置:从"target">"build settings">"runpath search path"&;然后检查值"$(inherited)"&;"@executable_path/frameworks",如果它们不存在,请随意添加。
构建应用程序并在设备上运行