最新CocoaPods的安装和使用
CocoaPods简介
在开发iOS项目时,经常会使用第三方开源库,手动引入流程复杂,并且库之间还存在依赖关系,更增加了手动管理的难度。开源库如果升级了,你也想用最新版本,还需要重新手动导入,这大大增加了工作量。但用了CocoaPods后,安装和升级都只是一句命令的事情,让你可以专于业务本身。
CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过多年发展,现在已经成为iOS开发事实上的依赖管理标准工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
CocoaPods安装
安装Ruby
CocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境。幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装。检测是否安装Ruby:
$ gem -v
gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem源来查找、安装、升级和卸载软件包,非常的便捷。
更换gem源
$ gem sources --removehttps://rubygems.org/$ gem sources -ahttps://ruby.taobao.org/
更换之后查看时候更换成功
$ gem sources -l
如果是淘宝的镜像则代表安装成功
安装CocoaPods
$ sudo gem install cocoapods
$ pod setup
如果你的mac升级到了OSX EL Capitan,那么安装的时候可能会有问题,如果出现问题可以执行
$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup
pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。
安装完成后查看是否安装成功
$ pod --version
CocoaPods使用
创建Podfile
首先cd你的工程目录,执行
$ vim Podfile
或者
$ touch Podfile
vim podfile 是直接进入编辑模式,编辑完成退出后才会生成podfile文件,当然你也可以进入编辑模式后直接退出,podfile就会出现在你的工程文件夹里了,你可以使用文本编辑或者sublime text再次编辑。touch podfile是直接生成podfile文件到你的工程,生成后需自己去工程文件夹里打开并编辑。
编辑Podfile
platform:ios,'9.3'use_frameworks!target'Test'dopod'SDWebImage','~>3.7.6'pod'Masonry','~>1.0.0'end
platform 的意思是系统支持的最低版本
use_frameworks!不写也是可以的。不过最好写上
target后面写的是你的工程名
do开始 end结束
如果你之前是使用vim podfile 进入的编辑模式,需要执行下面的退出操作。如果是其他方式打开只需保存关闭即可。
退出Podfile
先按ESC,然后执行
:wq
编辑完成后关闭podfile,执行如下命令即可:
$ pod install
其实Podfile也可以用文本编辑。感觉更方便点,编辑完注意保存就行了。
安装之后使用 CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
每次更改了 Podfile 文件,你需要重新执行一次pod update命令。
如果想要查找第三方库,可使用
$ 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参数可以禁止其做索引更新操作。如下所示:
$ pod install --no-repo-update
$ pod update --no-repo-update
参考