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
5source '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
15Analyzing 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 | Analyzing dependencies |
这时候, 再回到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 | # 搜索 |
参考资料
官方资料
cocoapods.org
CocoaPods/CocoaPods