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

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

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

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'


在网上找到如下2种解决方案,先介绍一下我自己的使用心得:

第一种:在

 


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




方案2:在

 

点击1处加号,会自动添加2处也就是copy files,3处选择为frameworks,在4处添加你自己的framework,添加完成后build,ok。

我使用后确实解决了bug问题,封装的SDK也达到了初步能用的地步,但是封装的功能并没有完全可以使用,也有可能是库封装的不完整问题。。

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


PPS:

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

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

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



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






TO ALL:

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













你可能感兴趣的:(iOS)