公司的项目需要把项目里用到的Intel的webrtc套件进行更新,先下载来一个示例项目看一哈,
解压完,一看这个目录结构怎么这么怪,有Podfile 和.xcworkspace 但是却没有pods和podfile.lock文件,这有点坑。
于是把.xcworkspace文件先删掉,然后进入项目目录,运行pod install导入。
这次再一看目录,这就顺眼了呀。点击.xcworkspace打开项目,打算研究一下改了哪些内容。
先添加自己的apple开发ID:
二话不说,先连上手机看一下效果,结果显示这样的错误:
没有导入WebRTC包?这也可以?
于是在这个文件的头写下:
@import WebRTC;
关于@import是iOS 7之后的新特性语法,这种方式叫Modules(模块导入) 或者 "semantic import(语义导入)" ,是一种更好的头部预处理的执行方式,这iOS 7之后你能通过@import语法来导入任何的framework,Modules是一种将所有可执行的framework打包在一起,貌似这种方式比起传统的#import更安全和更高效。
而且另外一个最大的改进就是使用@import之后,你不用在project settings那里添加framework,系统会自动帮你加载上了,方便了很多,也避免了很多不必要的错误,例如忘记了加入framework而出现的 "Linker Error"。
使用Modules方式:
将 #import <MapKit/MapKit.h>
替换为 @import MapKit;
即可
而且你也可以只加载framework里面的submodules@import MapKit.MKAnnotation;
出现了多处这样的错误提示,依次添加后错误提示消失。
接着出现了另一个错误: 提示AFNetworking未找到。
(有个奇怪的事情,当我解决了这个未找到的问题之后,为了重现问题写blog,我又重新解压了一份,然后打算复现,结果直接可以运行了?我一开始怀疑是不是缓存捣的鬼,删掉缓存,再次解压一份新的项目,打算重现,又再次成功执行了...这...我只好先标记这个问题了。)
#import <AFNetworking/AFNetworking.h>
明明已经导入了呀,为什么会找不到呢?原来是Xcode Search Paths相关配置出的问题:
看了这篇文章,感觉讲的挺好的,解决了我的问题。
https://www.jianshu.com/p/9f9c1fd2e8b5
解决了searchpaths问题后,AFNetworking的问题就解决了。
剩下的问题太过简单就不提了..
顺利build到真机上。