ios开发——日常之dyld: Library not loaded: @rpath/MySDK.framework/MySDK 错误解决

我最近在学习封装Framework库,在学习过程中遇到要了如题问题:

当我使用封好的系统默认的动态库时,报如下错误:

<code>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-93F5-1252B0B0BCAB/MyApp.app/Frameworks/MySDK.framework/MySDK: code signature invalid for '/private/var/mobile/Applications/08B6D2C2-5028-4A64-93F5-1252B0B0BCAB/MyApp.app/Frameworks/MySDK.framework/MySDK'<code>
在网上找到如下2种解决方案,先介绍一下我自己的使用心得:
第一种:在

3.png

上图Link Binary With Libraries中的Required改为Optional就没事了,实际真机运行发现不是回事,即使不报错了,但是无法运行该framework里的方法协议。 也就是说,这个库完全不起作用,我自己实现的库,肯定是要使用封装好的功能,所以这个方案Pass,希望大家引以为戒,不要去使用这种方案了,just waste time。
方案2:在


1.png

点击1处加号,会自动添加2处也就是copy files,3处选择为frameworks,在4处添加你自己的framework,添加完成后build,ok。
我使用后确实解决了bug问题,封装的SDK也达到了初步能用的地步,但是封装的功能并没有完全可以使用,也有可能是库封装的不完整问题。。

PS:我封装的。a库是可以完美使用的

PPS:

如何创建区分动态库还是静态库:

1、查看MySDK.framework是否为动态库(xcode6下默认是动态库)

2、若不需要使用动态库,则将其改为静态库,并重新生成framework

3.png

3、若必须使用动态库,则需要在MyApp的工程中做如下配置(未验证,网上是这么说的)

4.jpg

TO ALL:

以上是我使用系统默认的动态库的方式的使用心得,我认为应该封出静态库,后续学习过程中再续博。。

推荐阅读更多精彩内容