oc使用pods导入时使用use_frameworks!报错

2019-04-02  本文已影响0人  简单的说

在一些纯oc项目中,我们在导入一些三方库的时候,难免会遇到一些swift的库,这时候需要使用use_frameworks!这个关键语句,其实这句话的意思就是允许动态库的连接,在xcode6以前,我们导入的三方基本都是静态库,导入成功以后,一般会自动在项目里面添加.a的文件

但是现在使用一些三方的时候,github的项目界面会推荐我们在下载库之前加上use_frameworks!这句话,这就导致会在项目里形成.framework的文件

一些新项目倒还好,如果有的老项目,之前使用的静态库,但是使用use_frameworks!下载安装新库以后,有时候会发现一些问题,笔者把自己遇到的总结了一下,供大家参考:

1 使用这个会把以前的pod打包成framework而不是.a,所以某些文件引入的时候会报头文件找不到的问题

例子#import报错,需要改成@import

2 部分pod的三方文件资源再使用[NSBundle mainBundle] pathForResource放的的时候,找不到路径,导致程序闪退,暂时的解决办法如下

这是原来会闪退的源文件写法

找不到TSMessages这个三方里面的TSDesignFileName.json资源文件

NSString *path =[[NSBundle mainBundle]pathForResource:TSDesignFileName ofType:@"json"];

修改成如下就可以解决,但是要记住在下一次podinstall之后进行修改

NSString *path =[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"Frameworks/TSMessages.framework/%@",TSDesignFileName]ofType:@"json"];

3 头文件找不到 还要查看是不是查找路径有问题

点开other links flags 查看是不是有重复的,删除错误的即可

上一篇下一篇

猜你喜欢

热点阅读