CocoaPods的安装和使用

CocoaPods简介

在开发iOS项目时,经常会使用第三方开源库,手动引入流程复杂,并且库之间还存在依赖关系,更增加了手动管理的难度。开源库如果升级了,你也想用最新版本,还需要重新手动导入,这大大增加了工作量。但用了CocoaPods后,安装和升级都只是一句命令的事情,让你可以专于业务本身。
CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过多年发展,现在已经成为iOS开发事实上的依赖管理标准工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

CocoaPods安装

  • 安装Ruby

CocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境。幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装。检测是否安装Ruby:

1
$ gem -v

gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem源来查找、安装、升级和卸载软件包,非常的便捷。

  • 更换gem源
1
2
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/

更换之后查看时候更换成功

1
$ gem sources -l

如果是淘宝的镜像则代表安装成功

  • 安装CocoaPods
1
2
$ sudo gem install cocoapods
$ pod setup

pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。
安装完成后查看是否安装成功

1
$ pod --version

CocoaPods使用

  • 创建Podfile
1
$ vim Podfile
  • 编辑Podfile
1
2
3
4
5
6
7
8
platform :ios, '9.3'
use_frameworks!

target 'Test' do
pod 'SDWebImage', '~>3.7.6'
pod 'Masonry', '~>1.0.0'

end

platform 的意思是系统支持的最低版本
use_frameworks!不写也是可以的。不过最好写上

target是你的工程名

do开始 end结束

  • 退出Podfile

先按ESC,然后执行

1
:wq

然后你将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:

1
2
$ cd "your project home"
$ pod install

其实Podfile也可以用文本编辑。感觉更方便点,编辑完注意保存就行了。
安装之后使用 CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
每次更改了 Podfile 文件,你需要重新执行一次pod update命令。
如果想要查找第三方库,可使用

1
$ pod search 关键字

关于 Podfile.lock

当你执行pod install之后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock的文件,Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致。

不更新 podspec

CocoaPods 在执行pod install和pod update时,会默认先更新一次podspec索引。使用–no-repo-update参数可以禁止其做索引更新操作。如下所示:

1
2
$ pod install --no-repo-update
$ pod update --no-repo-update

参考

用CocoaPods做iOS程序的依赖管理