在我们开发iOS应用时,会经常使用到很多第三方开源类库,比如AFNetworking、FMDB等等
cocoaPods是iOS开发中最常用的类库管理工具,引用类库和更新类库都很方便,只需要一行简单的命令即可,统一管理第三方类库,提高开发效率。
听起来是不是觉得很美好?图样图森破,在实际开发中潜在很多问题。
这种方法由于直接将.xcodeproj文件直接拖到项目中,会将第三方项目中的全部文件都引用进来,而且编译项目时会同时编译自己的项目和第三方类库的项目,编译速度非常慢,所以不推荐使用。
目前,引用第三方类库的方法有4种。比较推荐方法二和方法三,根据不同的第三方类库选择不同的方法。
1.cocoaPods
通过cocoaPods引入第三方类库cocoaPods是iOS开发中最常用的类库管理工具,引用类库和更新类库都很方便,只需要一行简单的命令即可,统一管理第三方类库,提高开发效率。
听起来是不是觉得很美好?图样图森破,在实际开发中潜在很多问题。
1.安装好正确版本的cocoaPods
折腾了半天到一天时间,费尽千辛万苦排除各种错误,你以为只要安装好cocoaPods就好了?版本不对,项目一样编译不过,各种报错。通常只能卸载重新安装正确版本的cocoaPods。2.添加新的第三方类库
项目中需要使用新的第三方类库,你小心翼翼的配置podfile文件,通过cocoaPods的命令直接安装第三方类库,你以为就万事大吉了?编译一下,发现又是一堆的错误,你开始一步步的排查,想知道哪里出现错误,查到最后才发现原来又是cocoaPods出问题!不知道什么时候cocoaPods默默的升级到最新版本!!然后又得卸载cocoaPods然后重新安装。3.深度定制第三方类库
有时候,我们项目中只需要第三方类库的某个功能,并不需要所有的功能。或者需要深度定制第三方类库,根据项目实现自己的需求时,就不能使用cocoaPods来管理该类库。4.cocoaPods自身引起的其他问题
cocoaPods本身就是一个第三方的管理工具,依赖一个不是非常靠谱的第三方的工具来管理另一些同样不是非常第三方类库本身就不是一个特别靠谱的方案,并且随着第三方类库的增加,潜在的问题会成比例的上升。
2.复制所有源文件
直接把第三方类库的所有源文件复制到项目中,即把所有的.m和.h文件添加到项目中复制所有源文件,这种方法简单粗暴,但是有时候我们可能只需要第三方类库的某些功能,有很多源文件其实并没有作用,这时候其实没必要复制所有源文件,只需要添加和我们需要的相关功能的源文件即可,这样可以减少项目的大小。
3.静态链接库
将引用的静态链接库及头文件复制到项目中通过静态链接库添加的第三方类库,由于添加的都是头文件并不包含.m文件,所以在项目中只能调用第三方类库方法不能修改或重写方法。所以一般采用这种方法的大部分是第三方的SDK,例如qq,微信,友盟的SDK都是采用这种方式添加到项目中。
4..xcodeproj文件
直接将.xcodeproj文件拖到项目中这种方法由于直接将.xcodeproj文件直接拖到项目中,会将第三方项目中的全部文件都引用进来,而且编译项目时会同时编译自己的项目和第三方类库的项目,编译速度非常慢,所以不推荐使用。