关于dyld: Library not loaded

在接入智凡迪的sdk过程中,遇到以下问题:

dyld: Library not loaded: @rpath/SDKFramework.framework/SDKFramework

  Referenced from: /private/var/mobile/Containers/Bundle/Application/107B34E6-F250-4511-9FA9-31526F8E7B84/TestSDKUI.app/TestSDKUI

  Reason: image not found

智凡迪使用了iOS8中的自定义动态包。在build setting的link library导入SDKFramework.framework后,无法读取framework中的图片资源。

以前iOS上用的framework,实际上都是static library打包成framework结构,图片资源打包为bundle。直接在工程中导入framework和bundle资源即可。然而动态包直接将图片资源编译打包进framework,需要在导入的工程中做配置。

1.网上有一种办法是讲导入的framework设置为optional。

这里说明一下required和optional的区别:

强引用(Required)的framework是一定会被加载到内存的,但是弱引用(Optional)的framework只在需要时才会被载入内存,这对于比较大的framework来说,在最初加载的时候会省很多时间。例如,有一些库如Social.framework 和 AdSupport.framework,是在iOS6之后才被引入的,还有一些更新了新特性的只能在iOS6+上可用。当你添加一个framework到你的工程里,他们被默认强引用(Required),然而,当你最终把程序配置在运行5.0的设备上时,你会发现它通不过最户的加载,原因就在于这些库是不被iOS5.0支持的,就需要我们把这些库的引用改为Optional.

但是这里即便设置为optional,还是会报这个错,表明并非因为加载多余,而是真的没有加载进来。


2.这里如果要正确加载,需要两处设置:

-将包含图片的framework加载到bundle resource

-在build setting界面:target-〉Build Phases -〉左上角+号 -〉New Copy Files Phase 然后在Copy Files下 Destination选择Frameworks -〉添加动态库

这个操作似乎是要求运行时将动态库copy加载到framework当中,供app运行使用(存疑)。

时间: 2024-08-15 02:09:41

关于dyld: Library not loaded的相关文章

Xcode 7 中 CocoaPods 编译报错 dyld: Library not loaded: @rpath/Pods.framework/Pods

问题症状与解决 在 Xcode 7 beta 3 (7A152u) 中创建 Swift 项目,并使用 CocoaPods 做依赖管理,编译时会遇到如下的报错: dyld: Library not loaded: @rpath/Pods.framework/Pods Referenced from: /private/var/mobile/Containers/Bundle/Application/26B91138-7483-40B0-9BE6-D27072472895/AppName.app/A

Mac打不开Wireshark dyld: Library not loaded: /usr/X11/lib/libcairo.2.dylib

Q1:Mac OS Mountain Lion默认是没有安装X11的,而wireshark运行需要x11,因此如果直接安装wireshark而没有安装x11,wireshark不会正常运行. A1:去苹果主页下载最新版本的xQuartz,然后运行wireshark,会弹出一个选择x11的界面,选择/Application/Utilities目录下的xQuartz程序,点击确定, 然后X11会运行,弹出一个xterm窗口,在其中运行/Application/Wireshark.app/Conten

dyld: Library not loaded...

Libraries and frameworks are designated as Required by default, but you can change this designation to Optional. Required libraries must be present on the host computer for the product to load. Optional libraries do not have to be present for the pro

dyld: Library not loaded问题解决

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } span.s1 { } dyld: Library not loaded: @rpath/Ono.framework/Ono   Referenced from: /Users/xiaomanwang/Library/Developer/CoreSimulator/Devices/2E413916-E22B-462C-B19B-F4713B2B

[iOS Xcode8报错]dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserN

[iOS Xcode8报错]dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserN 升级了Xcode8,但是我的真机是iOS7系统,在我解决了Xcode8不支持iOS7系统以后(http://blog.csdn.net/iOSTianNan/article/details/52619319),真机调试出现如下报错 dyld: Library not loaded: /System

ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因

碰到问题 dyld: Library not loaded: @rpath/xxx.framework/xxx Referenced from: /var/containers/Bundle/Application/0F41980D-5091-449D-AE29-5D018E3EB554/DemoOC.app/DemoOC Reason: image not found enable Always Embed Swift Standard Libraries option under Build

iOS dyld: Library not loaded crash问题

今天在引入第三方framework时,我按照以前的方法,把framework加入到了下图的地方: 默认是required的,之后程序就crash了,报错dyld: Library not loaded,之后我把required 改成了optional,这次不crash了,但是运行时出错,库中的对象无法实例化,全部是空. 我是根据http://stackoverflow.com/questions/24333981/ios-app-with-framework-crashed-on-device-

dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Conta

dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from: /private/var/mobile/Containers/Bundle/Application/3A8F980D-F647-4D6D-B95A-88EC600BCA6B/RR.app/RR Reason: image not found 解决办法:工程->targets->Bulid Phases->complie Sources->

dyld: Library not loaded: @rpath/MySDK.framework/MySDK 错误解决

dyld: Library not loaded: @rpath/MySDK.framework/MySDK   Referenced from: /var/mobile/Applications/08B6D2C2-5028-4A64-93F5-1252B0B0BCAB/MyApp.app/MyApp   Reason: no suitable image found.  Did find: /private/var/mobile/Applications/08B6D2C2-5028-4A64-