一、在安装CocoaPods之前,首先要在本地安装好Ruby环境:
步骤1 - 安装 RVM
具体RVM 是干什么的,说实话,我也没搞懂,查了一下,应该是第三方安装工具
$ curl -L https://get.rvm.io | bash -s stable
安装过程可能会需要sudo管理员密码也可能不需要管理员密码视个人情况而定,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。
然后,载入 RVM 环境(新开 Termal 就不用这么做了,会自动重新载入的)
$ source ~/.rvm/scripts/rvm
检查一下是否安装正确
$ rvm -v
正确安装以后会显示下面一些信息
rvm 1.22.17 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
步骤2 - 用 RVM 安装 Ruby 环境
使用下面的命令列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装(下面以rvm 2.0.0版本的安装为例)
$ rvm install 2.0.0
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 1.9.2
但是在安装$ rvm install 2.0.0会出现以下错误(也有可能不会出现):
这个错误是因为Homebrew发生了not writable的错误,也就是说Homebrew不可写入的错误
解决办法的终端命令是:
$ rvm autolibs read-only # read more here:https://rvm.io/rvm/autolibs
$ rvm install ruby
输入这个终端命令之后,就会进入疯狂的下载模式了
步骤3 - 设置 Ruby 版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.3.0 --default
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
这个时候你可以测试是否正确,查看一下ruby版本:
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
$ gem -v
2.5.1
下面是将ruby的cocoapods.org换成淘宝的,国外的网址有时访问不了
$ gem source -r https://rubygems.com/
$ gem source -a https://ruby.taobao.org
要想验证是否替换成功了,可以执行:
$ gem sources -l
正常的输出结果:
CURRENT SOURCES
到这里就已经把Ruby环境成功的安装到了Mac OS X上,接下来就可以安装cocoapods了
二、安装cocoapods,并使用cocoapods管理第三方框架
安装cocoapods只需一行命令
$ sudo gem install cocoapods
等一会,cocoapods便安装好啦
以下以AFNetWorking为例,说一下cocoapods如何管理第三方框架
首先,搜索一下cocoapods是否支持AFNetWorking
$ pod search AFNetWorking
稍后会列出AFNetWorking的一些信息,还有一些AFN中最新的以及常见的版本,因此可以使用cocoapods来管理
在终端中进入(cd命令)你项目所在目录(可以直接在终端中cd 然后将目标文件直接拖拽到终端去),然后在当前目录下输入:
$ pod init
然后在项目中回多出一个Podfile文件,打开这个文件,是下图样子
这个时候以SDWebImage跟AFN为例子,将其文件修改成
这时候,你就可以利用CocoPods下载相对应的类库了。还是在终端中的当前项目目录下,运行以下命令:
$ pod install
因为是在你的项目中导入相对应的类库,这就是为什么这个命令需要你进入你的项目所在目录中运行。
运行上述命令之后,小编的终端出现一些信息:(不用管)
最后一句注意下:
[!] From now on use CocoaPodsDemo.xcworkspace
.
注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。
至此,就完成了在此项目中使用cocoapods管理三方;
特别提示:如果出现 setting up cocoapods master repo 请等待;