From b210107071fa4d9cef18e94f28468ab732217221 Mon Sep 17 00:00:00 2001 From: luke Date: Sun, 23 Jun 2013 21:35:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0cocoapods=E6=96=87=E7=AB=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- _posts/2013/2013-06-23-cocoapods-101.md | 78 +++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 _posts/2013/2013-06-23-cocoapods-101.md diff --git a/.gitignore b/.gitignore index c08f9ad..9263a1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -_site \ No newline at end of file +_site +.DS_Store diff --git a/_posts/2013/2013-06-23-cocoapods-101.md b/_posts/2013/2013-06-23-cocoapods-101.md new file mode 100644 index 0000000..8689c4b --- /dev/null +++ b/_posts/2013/2013-06-23-cocoapods-101.md @@ -0,0 +1,78 @@ +--- +layout: post +title: Cocoapods 101 +categories: +- Programming +tags: +- Mac +- iOS +- ruby +--- + + + +###一.cocoapods介绍 +在开发iOS的程序的时候,经常会用到第三方的库,一般的做法就是直接将其源码拷贝到自己的项目中,或者将其静态库拷贝到项目中进行使用。当这个三方库的版本更新了,还需要重新进行拷贝复制,非常不方便,且库与库之间的依赖也不好管理,cocoapods的出现便是解决这一问题的。cocoapods是一个ruby实现的objc三方库依赖管理工具,可以看得出,cocoapods在很多地方借鉴了ruby的包管理工具gem。 +每一个三方库的版本在cocoapods中叫做一个pod,每一个pod对应一个描述文件,这个描述文件叫做podspec文件,其中描述了这个pod的名称,版本,许可证,主页,作者,源码库位置,平台,所依赖的其他三方库以及系统的framework,是否arc等信息。cocoapods官方默认支持的所有podspec都放在github上,地址为 [https://github.com/CocoaPods/Specs](https://github.com/CocoaPods/Specs),你也可以加入自定义的podspec库,以引入官方库中没有的podspec,添加自定义podspec库的方式为 + + $ pod repo add + +执行上条命令之后,pod便会将自定义的库clone到 `~/.cocoapods/` + +###二.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` \ No newline at end of file