CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$ pod install命令。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。

安装CocoaPods前的准备

(1)# 先安装 [Xcode](http://developer.apple.com/xcode/) 开发工具,它将帮你安装好 Unix 环境需要的开发包



$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"



(2)安装RVM



$ curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable



期间可能会问你 sudo 管理员密码,以及自动通过 Homebrew 安装依赖包,等待一段时间后就可以成功安装好 RVM。

然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)



$ source ~/.rvm/scripts/rvm



修改 RVM 下载 Ruby 的源,到 Ruby China 的镜像:



echo "ruby_url=https://cache.ruby-china.org/pub/ruby" > ~/.rvm/user/db



检查一下是否安装正确



$ rvm -v
rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]



 

(3)用 RVM 安装 Ruby 环境



$ rvm install 2.3.0



等待时间非常漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。

(4)设置 Ruby 版本

RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本



$ rvm use 2.3.0 --default



同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本

这个时候你可以测试是否正确



$ ruby -v
ruby 2.3.0 ...

$ gem -v
2.5.1



查询已经安装的ruby



 $ rvm list



卸载一个已安装版本 



$ rvm remove 2.0.0



 (5)安装 CocoaPods

因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将其替换成其他站点的,替换方式如下:
移除原始镜像:



$gem source -r https://rubygems.org/



安装其他站点镜像



$https://gems.ruby-china.org/



要想验证是否替换成功了,可以执行:



 $ gem sources -l



正常的输出结果:

*** CURRENT SOURCES ***

 

https://gems.ruby-china.org/

安装CocoaPods

在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。输入以下命令进行安装 CocoaPods



$ sudo gem install cocoapods



*-*-*-*到这里 CocoaPods 就安装完成了*-*-*-*

CocoaPods的使用

为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:



$ pod search AFNetworking



出现错误:



[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master

 

Cloning into 'master'...

fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': Failed to connect to github.com port 443: Operation timed out



解决方法:



$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer



再次输入



$ pod search AFNetworking



AFNetworking为例子:
(1)在工程的目录
(也就是跟***.xcodeproj文件在同一个文件夹)
下创建 Podfile (注意,一定得是这个文件名,而且没有后缀)空白文件 。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。
(2)打开podfile文件,输入需要的第三方(按照下面格式输入)



platform :ios, '9.0'
use_frameworks!
#use_frameworks!个别需要用到它,比如reactiveCocoa
target '项目名称' do
  pod 'AFNetworking', '~> 3.1'
end



保存退出

(3)终端输入



$pod install



(4)打开工程

***.xcworkspace的文件

就此添加第三方AFNetworking成功

参考文档

(1)http://code4app.com/article/cocoapods-install-usage

(2)

(3)http://ruby-china.org/wiki/install_ruby_guide

(4)