背景:其实这段时间也是一直在学习swift,作为一名iOS开发,现在才来学习swift是有些晚了,这次是因为项目要集成一个混编的SDK,需要用cocoapods来管理swift的地方库,而项目之前一直都是OC的代码。一开始以为很简单,上来直接
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'ObjectMapper'
pod 'SnapKit'
pod 'Toast-Swift'
结果pod 出现错误提示,无法下载swift的库,就去百度了一下,发现需要添加
use_frameworks!
添加这句代码是因为Apple不允许build包含swift的静态库了,而cocoapod使用了framework动态框架的方式来集成swift库。
加上这句代码以后发现command+B
#import <WebViewJavascriptBridge/WebViewJavascriptBridge.h>
#import <MJExtension/MJExtension.h>
接着command+B,还有一个报错……这个常见的错误,不外乎就是target里面的那点事。网上copy了一下这个常见问题的三种常见解决方法。
第一种:点击 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries”,奇怪并没有链接AFNetworking。(一般应该能发现有一到数个的条目是用红色字体来显示的,这样才导致链接不到,应该是Pods的target集合所有库生成一个pod.a或者pod.framework)第二种:在工程的 Target 中选中要执行编译的target,然后 “get info”,打开 Build Settings页面,在 “ Library Search Path” 中添加缺失链接库的所在文件夹的路径。(这个因为是cocoapods管理的所需的库,一般到是没什么问题,是由$(inherited)搞定的,这个后面会讲到)
第三种:关闭XCode,再用pod install 命令重新安装,成功后再打开XCode编译项目。对我来说试了好多次都不行,完全是死马当活马医啦!
就是这种涉及编译的问题,反复改来改去,最后还是那个错误,我甚至有种把项目重新用swift写一遍的冲动,也不想这个编译不过得错误了。但没办法时间不允许,实际上我重写一半了。没办法了,越狱,百度不行google呗。终于被我碰到一个踩过这个坑的人了。
https://www.jianshu.com/p/d0dc92d9a31b
根据他的分析,应该是从前cocoapods生成的一些-l"AFNetworking"之类的flags还在,问题就在这里了,其实解决方法直接删掉。
我已经把I-AFNetworking 给删除了。
然后重新pod install就可以了