关于在原有OC项目的基础上使用swift的第三方库

背景:其实这段时间也是一直在学习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

又发现报错。提示是swift-language-version...什么的报错,这个时候只要找到pod-->build setting->swift-language-version设置为4.0语法就可以了
屏幕快照 2018-03-07 下午4.28.11.png
接着command+B,发现还有两个错误。file not found,头文件无法找到。这个时候需要把报错的头文件以系统头文件的方式引入
#import 
#import 

接着command+B,还有一个报错……
屏幕快照 2018-03-06 下午5.26.19.png

这个常见的错误,不外乎就是target里面的那点事。网上copy了一下这个常见问题的三种常见解决方法。

第一种:点击 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries”,奇怪并没有链接AFNetworking。(一般应该能发现有一到数个的条目是用红色字体来显示的,这样才导致链接不到,应该是Pods的target集合所有库生成一个pod.a或者pod.framework)
image.png

第二种:在工程的 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还在,问题就在这里了,其实解决方法直接删掉。

image.png

我已经把I-AFNetworking 给删除了。
然后重新pod install就可以了

你可能感兴趣的:(关于在原有OC项目的基础上使用swift的第三方库)