一、CocoaPods简介
1、什么是CocoaPods
CocoaPods是专门为iOS工程提供的一个第三方类库的管理工具。其具体原理和 Mac OS自带的 Homebrew 有点类似,都是从 GitHub 下载索引,然后根据索引下载依赖的源代码。
2、为什么使用CocoaPods
在开发iOS应用时,经常使用到很多第三方开源类库,比如AFNetWorking、Masonry等等,手动加入不仅流程复杂,而且如果所用的开源库升级了,还需要手动删除、下载、再引入,大大增加了工作量。通CocoaPods,我们只需要简单的命令就可以实现第三方开源类库的安装和升级,方便地管理每个第三方开源类库的版本。
二、cocoaPods的安装
1.安装Ruby
在安装CocoaPods之前,首先要要保证已经在本地安装好了Ruby环境,因为CocoaPods是基于Ruby语言的。
Mac系统默认自带有Ruby环境。检测是否安装Ruby:
$ gem -v
安装则会提示当前Ruby版本。
gem是一个管理Ruby库和程序的标准包,用于构建、上传、下载以及安装gems包。
2、安装CocoaPods
确认已经安装了Ruby的情况下,就可以安装CocoaPods了,安装的命令:
$ gem install cocoapods
稍等一会就可以安装完成,检查是否安装成功:
$ pod --version
成功提示版本号,则说明安装成功。
三、Cocoaods的使用
1、查找第三方类库
看其是否支持需要导入的第三方类库,比如查找MJExtension,终端输入:
$ pod search MJExtension
第一次搜索时需要创建索引,所以可能用的时间比较久,等一会就可以了。
2、创建Podfile文件:
(1)在进行Podfile创建之前,需要切换到当前工程所在的目录下:
$ cd 当前工程的路径
(2)在终端输入如下命令,创建Podfile文件,如果已经创建,则会直接打开已经存在的Podfile文件:
$ vim Podfile
需要导入的第三方类库都要在这里面写上。
3、编辑Pod file文件
(1)打开Podfile文件:
可以选择用系统自带文本编辑器打开进行直接编辑,也可以在Vim下进行编辑。
Vim是一款功能非常强大的文本编辑器
在Vim下进行编辑时,首先按‘i’(即insert)进入编辑模式,然后我们可以根据需要,在文件中写入需要导入的第三方类库。Podfile文件的格式大致如下:

其中:
1、platform:是指需要导入的第三方类库希望在哪个平台被编译,这里希望采用iOS8.0进行编译。
注:如果在platform后面没有写东西的话,默认是在iOS4.3,OSX 10.6,tvOS 9.0以及watchOS 2.0的情况下编译的。很多库都是从6.0或者7.0才开始支持的,自然编译不通过。所以记得要注意这点,后面要跟上具体的platform的参数。2、target:指定具体的配置是适配在哪个target,这里的target就是Xcode中的当前项目cocoapodsDemo。
注:如果对于一些项目中你的不同target引用的框架不同的话,可以采用这个进行区分。3、pod: 以
pod '类库名' 参数
的格式说明要导入的第三方类库。
注:参数一般是版本号,可以是大于、等于和小于等,比如'>4.0', '>=4.0', '<4.0', '<=4.0',其中'~>4.0'就是指4.0版本;当然也可以是其它类型的参数,比如tag、branche、commit等。
(2)编辑完后,按esc退出编辑模式,并按shift+zz保存并退出。
4、安装第三方类库
编辑完Podfile文件之后,就可以利用CocoPods下载第三方类库了。在终端中运行以下命令:
$ pod install
安装成功之后,你会发现出现了一个.xcworkspace
文件,这正是你刚刚运行pod install
命令产生的新文件。除了这个文件,还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。
注:之前我们一直是双击TcocoapodsDemo.xcodeproj
打开项目,以后我们就要双击cocoapodsDemo.xcworkspace
打开了.
5、使用第三方类库
在工程中引入其头文件,如MJExtension类库,可以#import <MJExtension.h>
或者#import<MJExtension/MJExtension.h>
,就可以在项目里使用MJExtension了。

四、增加新的第三方类库
如果使用过程中我还想添加其他的第三方怎么办呢?只要在Podfile里面接着添加,然后终端再执行pod install
就可以了。
五、更新第三方类库
第三方类库们都有人在维护升级,我们需要隔断时间更新下我们工程中第三方库的版本。此时,只需要终端输入命令pod update
就可以了。
六、删除第三方类库
当我们需要去掉某个第三方库时,只需要在Podfile删除该引入该库的语句,然后执行pod update
或者pod install
就可以了。
七、常见问题
(1)在输入#import "MJExtension.h"
的时候出现提示
解决这个问题的办法是在工程的Build Settings搜索Search,然后在User header search paths中添加$(SRCROOT)并选择recursive。如下图:

(2)pod install
或者pod update
慢的问题
原因在于本地的repo库太长时间没有更新了,当执行以上两个命令的时候,会升级CocoaPods的specs仓库。如果不想在install和update的时候升级specs库,可以使用参数忽略掉,加参数的命令如下:
$ pod install --no-repo-update
$ pod update --no-repo-update
(3)CocoaPods更新不了时
CocoaPods需要实时更新,但是,自己更新不了时,需要ruby来更新,
当控制台命令不能更新ruby时,需要用系统的人homebrew来安装更新ruby,命令为:
brew install ruby
Ruby更新成功,CocoaPods也更新成功。
网友评论