关于IOS使用自己编译的框架(framework)报错。

错误描述:

dyld: Library not loaded: /System/Library/Frameworks/AdSupport.framework/AdSupport


  Referenced from: / var/mobile/Applications/969DE3E8-A80C-4A23-B51C-6F89748850D4/"your app".app/"your app"


  Reason: image not found


两种情况:

1. 如果这个库不是你自己写的,或者非必须的,可以修改选项 build phases 把对应的库 改为可选 optional,

大部分时候能解决问题,但是这样设置可能这个库就不能正常使用了,但是运行的时候可以通过。


2. 如果这个库是必须的,从上面的目录可以看到 这个库 没被搜索到,没搜索到当然无法加载,所以运行的时候

就crash 了, 解决这个情况,我是把我生成的 框架 给copy 过去,在build phases 中Copy Files 首先选择

Destination,这个路径根据你的需要而定,如果你设置了 @executable_path 等这些参数,你需要详细的对比一下

路径再行决定; Copy only when installing 此参数不勾选, 然后点击 “ + ” 把你 需要导入的 框架(framework)添加

进来,然后编译运行完成。

ps: 说明一点,我的这个库使用的是动态方式来加载的,所以需要拷贝到设备,如果使用静态方式,在内容会直接链接

到app,这样app会比较大,但是可以省了这一步,比较方便。根据情况定需要吧。


3. 框架(framework) 很有用,在开发第三方sdk的时候用到,比如开发一个播放视频的组件,流媒体模块,图像识别或者

一些游戏的渲染等。框架可以包含共享库,头文件和资源等,打包一起发布。可以兼容多个版本。


有一点一定要注意,分清你的框架是不是共享库形式打包,不然在这方面会花掉很多时间。

你可能感兴趣的:(C++)