CocoaPods是Objective-C项目中最好用的第三方依赖包管理工具。
项目地址:
https://github.com/CocoaPods/CocoaPods
什么是第三方依赖包?
现代项目开发中,总有些类库会帮我们节约很多时间,软件也就变成了积木似的类库组装。使用这些第三方的类库时,有些问题需要考虑,如这些类库的存放位置,是存在本地,还是在一个统一的服务器?如类库的版本,如何保证线上运行时使用正确版本的库?
XCode中,通常将一个库的项目拖到当前项目中来使用。像AFNetworking,JSONKit,但这样都有上面所说的问题。
在Java项目中,通常使用Meavn来管理,.NET下由有NuGet,Ruby下则是著名的RubyGem,而Objective-C中,现在有了CocoaPods。
CocoaPods是如何做的?
CocoaPods是使用Ruby来进行开发的,本质上只是为创建另一个叫libPods
的项目,里面包含所有第三方包的源码,统一编译到一个Lib中,然后将该项目和源项目统一放到一个WorkSpace下。
CocoaPods还为我们做了第三方包的统一管理。这些包被放在Spec项目下https://github.com/CocoaPods/Specs,每个人都可以把好的库做成Spec,并提交到该项目中,这样就可以使用CocoaPods来管理了。
CocoaPods安装和使用
因为CocoaPods是使用Ruby开发,所以要求机器必须有Ruby环境,但不用担心,Mac上默认是有的。
1 2 |
|
Pods的安装,就是将Spec项目复制到当前用户的.cocoapods\master
目录下,以后的查找、安装使用都是基本该本地目录的。
安装成功后,就可以尝试使用了,试着用Search来看你需要的Package是否存在。
1 2 3 4 5 6 |
|
以上显示JSONKit在CocoaPods中有两个版本,1.4和1.5pre,cocoapods介绍完成之后,接下来看如何在项目中使用。
配置新的项目
Pods通过一个名为Podfile的文件来配置项目中所需要的第三库。创建如下文件。
1
|
|
内容:
1 2 |
|
这里如果不指定包的版本,则默认使用最新版。
然后,在项目目录下,进行安装。
1 2 3 4 5 6 7 |
|
Pods自动创建一个libPod的项目,并生成一个同名的XCode workspace,以后就要通过该workspace来打开项目了。项目打开如下。
libPods被作为framework集成到目标项目。
Pods.xcconfig 中配置了XCode编译的查找路径,通过这种方式将所有的第三方包来引入到项目中。
1 2 |
|
如需要添加更多的依赖包,只需要在Podfile
中加入,然后运行pod install
即可。
Spec
简单的说,Spec就是每个包在CocoaPods中的配置文件,其中包括Package的名字,版本号,每个版本对应的下载地址,编译时的参数。等等。
这是该项目的地址,https://github.com/CocoaPods/Specs,在页面上有介绍如何创新新的包,可以Fork该项目,然后通过pull request提交所建的新包。