Cocoapods 101


###一.cocoapods介绍 在开发iOS的程序的时候,经常会用到第三方的库,一般的做法就是直接将其源码拷贝到自己的项目中,或者将其静态库拷贝到项目中进行使用。当这个三方库的版本更新了,还需要重新进行拷贝复制,非常不方便,且库与库之间的依赖也不好管理,cocoapods的出现便是解决这一问题的。cocoapods是一个ruby实现的objc三方库依赖管理工具,可以看得出,cocoapods在很多地方借鉴了ruby的包管理工具gem。 每一个三方库的版本在cocoapods中叫做一个pod,每一个pod对应一个描述文件,这个描述文件叫做podspec文件,其中描述了这个pod的名称,版本,许可证,主页,作者,源码库位置,平台,所依赖的其他三方库以及系统的framework,是否arc等信息。cocoapods官方默认支持的所有podspec都放在github上,地址为 https://github.com/CocoaPods/Specs,你也可以加入自定义的podspec库,以引入官方库中没有的podspec,添加自定义podspec库的方式为

$ pod repo add <repo name> <git repo url>

执行上条命令之后,pod便会将自定义的库clone到 ~/.cocoapods/<repo name>

###二.cocoapods安装 cocoapods是使用ruby写的,可以通过gem进行安装,所以第一步你需要整好自己的ruby环境,安装cocoapods。在Mac上系统默认已经安装了ruby,不过版本比较老了,所以在实际使用中还是会自己安装ruby的。而且为了方便日后切换ruby的版本,一般会通过ruby的管理工具进行ruby的安装,很多人喜欢使用RVM,而我更喜欢轻量级的rbenv,首先得安装好XCode及其命令行工具,这样就准备好了Mac上的编译环境。 然后安装rbenv,其实就是讲rbenv的库clone到本地,以及相应的插件

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
git clone git://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

假设你命令行使用了zsh,如果没有使用则推荐你使用,讲rbenv的path加入到环境变量中

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> $HOME/.zshrc
echo 'eval "$(rbenv init -)"' >> $HOME/.zshrc

准备好rbenv后,则准备安装ruby版本,

rbenv install 2.0.0-p195
rbenv global 2.0.0-p195

安装好ruby后,准备安装cocoapods,首先重新设置gem的源地址,因为国外的源地址速度太慢,我们使用淘宝的镜像源

gem sources -a http://ruby.taobao.org/
gem sources -l #查看现在所有的源地址
gem sources --remove http://rubygems.org/ #移除默认的源地址

gem install cocoapods #安装cocoapods

三.cocoapods使用

#####1.创建一个项目,比如创建一个名为podtest的项目 #####2.在项目的根目录中创建一个名为’Podfile’的文件,在此文件中加入相应的设置

platform :ios, '5.0'
pod 'AFNetworking' #####3.在项目根目录中运行`pod install`,得到如下输出

➔ pod install
Setting up CocoaPods master repo

CocoaPods 0.21.0.rc1 is available.

Setup completed (read-only access)
Analyzing dependencies

CocoaPods 0.21.0.rc1 is available.

Downloading dependencies
Installing AFNetworking (1.3.1)
Generating Pods project
Integrating client project

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

这个时候在你的home目录中多了一个.cocoapods的目录,且此目录下有一个master的目录,这里便是自动clone出来的官方的podspec库。

#####4.这个时候已经生成了一个XCode的workspace文件,你可以打开workspace 你会发现cocoapods会将所有的三方库放在一个单独的名为Pods的项目中进行维护,这个Pods的项目将所有的三方库打包成一个单独的静态库,供主项目使用,至于三方库的资源文件,则提供了一个拷贝脚本,供主项目使用Pods-resources.sh

卢克 /
Published under (CC) BY-NC-SA in categories Programming  tagged with Mac  iOS  ruby