关于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运行使用(存疑)。
关于dyld: Library not loaded的更多相关文章
- xcode解决问题dyld: Library not loaded
一.问题 编译通过,联机调试时,应用启动闪退,XCODE的Output出现提示: dyld: Library not loaded: /System/Library/Frameworks/AdSupp ...
- 解决 dyld: Library not loaded:Reason: image not found
在使用第三方framework时,直接把framework拖到项目中,运行时报错: dyld: Library not loaded: @rpath/ZipZap.framework/ZipZap R ...
- Swift真机调试时报错dyld: Library not loaded: @rpath/libswiftCore.dylib
dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Containers/ ...
- [iOS Xcode8报错]dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserN
[iOS Xcode8报错]dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserN ...
- XCode 添加自定义framework运行时出现dyld: Library not loaded的解决方法
XCode添加自定义framework运行时出现dyld: Library not loaded的解决方法 在使用自定义的framework运行时,会出现如下的错误: dyld: Library no ...
- 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/Cont ...
- iOS dyld: Library not loaded 报错解决
Xcode 用的是10.1 版本打的苹果包在 ios系统10.0 以上可以正常运行 但是系统9.3的手机安装后直接运行就崩溃 后来插上电脑联调 报错 dyld: Library not loaded: ...
- ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因
碰到问题 dyld: Library not loaded: @rpath/xxx.framework/xxx Referenced from: /var/containers/Bundle/Appl ...
- iOS 报错信息: dyld: Library not loaded: @rpath/XCTest.framework/XCTest Referenced from
新建项目,引入framework,运行时出现警告:dyld: Library not loaded: @rpath/RLLibrary.framework/RLLibrary Referenced ...
随机推荐
- UVA 12063 Zeros and Ones(三维dp)
题意:给你n.k,问你有多少个n为二进制的数(无前导零)的0与1一样多,且是k的倍数 题解:对于每个k都计算一次dp,dp[i][j][kk][l]表示i位有j个1模k等于kk且第一位为l(0/1) ...
- list<>泛型的意义
泛型就是指定一个自定类或数据类型例如(int)并命名一个XXX集合名,所有这个类型的数据可以加入这个XXXX集合名,组成一个集合. private list<可放例int数据类型或自定类> ...
- centos vsftp 500 OOPS: cannot change directory:/home/ftp
系统是CentOS,是RH派系的.我把vsftpd安装配置好了,以为大功告成,但客户端访问提示如下错误:500 OOPS: cannot change directory:/home/ftp原因是他的 ...
- saga+.net core 分布式事务处理
Apache ServiceComb Saga 是一个微服务应用的数据最终一致性解决方案 中文官方地址:https://github.com/apache/servicecomb-saga/blob/ ...
- webjars-jquery的引用
什么是WebJars WebJars以jar包的形式来使用前端的各种框架.组件,如jquery.bootstrap WebJars将客户端(浏览器)资源(JavaScript,Css等)打成jar包文 ...
- Android开发-网络通信2
调试了三种通信方法:HttpClient.AsyncHttpClient 和 Volley . HttpClient 测试代码[1]: public class HttpUtil { public s ...
- brew 与 nvm
brew 与 nvm 是两个管理软件工具 今天更新了brew结果brew下安装的软件都找不着了.得重新安装,据说brew已经不再更新了.应该是通过github的吧. 结果得重装node与npm,这两 ...
- jQuery全局冲突案例,解决$.noConflict()
如图:犹豫$在js中可以作为一个变量去定义,所以在引入jQuery包之前定义了$对象,那么,在引入jQuery包之后就不能使用$对象了 解决:使用$.noConflict()她可以返回一个对象,这个对 ...
- MySQL事务的隔离级别
为什么需要隔离 当多个线程都开启事务操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性,在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种 ...
- PHP5.6版本安装redis扩展
一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...