iOS CocoaPods安装和使用教程

开发iOS项目时肯定会用到许多第三方项目,比如说:ASIHttprequest,JSONKit等等,一些类库可能又关联着其他类库,如果超过一定的数量,手动去下载这些类库难免会有一些麻烦,并且还要去配置参数,等到类库更新的时候,我们还得重新下载一份,这些没有技术含量的活有没有办法避免呢?答案是肯定的,今天就学习了一下iOS下面依赖包管理的工具,这个工具的名字是CocoaPods

安装CocoaPods

在Terminator(也就是终端)中输入以下命令

1
sudo gem install cocoapods

使用CocoaPods

好了, 安装好CocoPods之后, 接下来就是使用它. 所幸, 使用CocoPods和安装它一样简单, 也是通过一两行命令就可以搞定.

这里以Alamofire为例, 演示

参看 CocoaPods 是否支持该库

1
pod search Alamofire

创建Podfile文件

在终端中进入(cd命令)你项目所在目录, 然后在当前目录下, 利用vim创建Podfile

1
vim Podfile

如果没有创建Podfile文件将无法安装, CocoaPods都不知道改安装说明, 怎么去安装呢, 对吧.

1
[!] No `Podfile' found in the project directory.

输入以下代码:

1
2
3
4
5
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'Alamofire', '~> 2.0'

然后保存退出

1
:wq

安装 Alamofire

这时候, 你就可以利用CocoPods下载Alamofire类库了. 还是在终端中的当前项目目录下, 运行以下命令:

1
pod install

安装完后输出信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Analyzing dependencies

CocoaPods 0.39.0.beta.4 is available.
To update use: `gem install cocoapods --pre`
[!] This is a test version we'd love you to try.

For more information see http://blog.cocoapods.org
and the CHANGELOG for this version http://git.io/BaH8pQ.

Downloading dependencies
Installing Alamofire (2.0.2)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `Text.xcworkspace` for this project from now on.

注意最后一句话, 意思是: 以后打开项目就用 CocoaPodsDemo.xcworkspace 打开, 而不是之前的.xcodeproj文件.

编译运行一个包含CocoPods类库的项目

你也许曾经遇到过(特别是新手iOS开发者)这种情况, 好不容易在GitHub上找到一份代码符合自己想需求, 兴冲冲下载下来, 一编译, 傻眼了, 发现有各种各样错误. 一看, 原来是缺失了各种其他第三方类库. 这时候莫慌, 你再仔细一看, 会发现你下载的代码包含了Podfile. 没错, 这意味着你可以用CocoaPods很方便下载所需要的类库.

下面, UAAppReviewManager 为例来说明如何正确编译运行一个包含CocoPods类库的项目.

UAAppReviewManager是一个能够让你方便地将提醒用户评分的功能加入你的应用中. 当你去UAAppReviewManager的GitHub地址下载这份代码之后, 打开Example工程(UAAppReviewManagerExample), 编译, 你会发现Xcode报告一大堆错误, 基本都是说你编译的这份代码找不到某某头文件, 这就意味着你要成功编译UAAppReviewManager的Example代码, 必须先导入一些第三方类库. 同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件夹): Podfile, Podfile.lock和Pods.

这时候, 打开终端, 进入UAAppReviewManagerExample所在的目录, 也就是和Podfile在同一目录下, 和场景1一样, 输入以下命令(由于已经有Podfile, 所以不需要再创建Podfile):

1
pod update

过几秒(也许需要十几秒, 取决于你的网络状况)之后, 终端出现:

1
2
3
4
5
6
7
8
Analyzing dependencies
Fetching podspec for `UAAppReviewManager` from `../`
Downloading dependencies
Installing UAAppReviewManager (0.1.6)
Generating Pods project
Integrating client project

[!] From now on use `UAAppReviewManagerExample.xcworkspace`.

这时候, 再回到UAAppReviewManagerExample文件夹看一看, 会看到多了一个文件UAAppReviewManagerExample.xcworkspace.
根据终端的信息提示, 你以后就需用新产生的UAAppReviewManagerExample.xcworkspace来运行这个Example代码了.

Ps: 注意, 这里有个小问题, 如果刚刚你不是输入pod update, 而是输入pod install, 会发现类库导入不成功, 并且终端出现下面提示:

1
2
[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.
Available versions: 0.1.6

这里的意思大概是Podfile文件过期, 类库有升级, 但是Podfile没有更改. pod install只会按照Podfile的要求来请求类库, 如果类库版本号有变化, 那么将获取失败. 但是 pod update会更新所有的类库, 获取最新版本的类库. 而且你会发现, 如果用了 pod update, 再用 pod install 就成功了.

那你也许会问, 什么时候用pod install, 什么时候用pod update 呢, 我又不知道类库有没有新版本. 好吧, 那你每次直接用pod update 算了. 或者先用pod install, 如果不行, 再用pod update.

常用命令

1
2
3
4
5
6
7
8
# 搜索
pod search Alamofire

# 安装
pod install

# 更新
pod update

参考资料

官方资料

cocoapods.org
CocoaPods/CocoaPods

第三方资料

iOS开发利器-CocoaPods安装和使用教程
CocoaPods安装和使用教程