在一些纯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 查看是不是有重复的,删除错误的即可
网友评论