RVM、RuBy的安装配置以及CocoaPods安装和使用
本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境。
系统需求
首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用:
- Mac OS X
以下代码区域,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号)
步骤1 - 安装 RVM (ruby version manger ruby 版本管理)
RVM 是干什么的这里就不解释了,后面你将会慢慢搞明白。
$ \curl -L https://get.rvm.io | bash -s stable --ruby
期间可能会问你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版本来进行安装(you just want the latest (current) version)
$rvm install current && rvm use current
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
另附:
查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 2.0.0
步骤3 - 设置 Ruby 版本
这个时候你可以测试是否正确
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]
$ gem -v
2.1.6
这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成ruby-china的,替换方式如下:
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://gems.ruby-china.org/
3.验证新源是否替换成功
$gem sources -l (这是L)
正常的输出结果:
CURRENT SOURCES
https://gems.ruby-china.org
到这里就已经把Ruby环境成功的安装到了Mac OS X上,接下来就可以进行相应的开发使用了。
接下来就是CocoaPods的安装
一、什么是CocoaPods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
二、CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://gems.ruby-china.org/
3.验证新源是否替换成功
$gem sources -l
1、安装
CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:
(1)$sudo gem install cocoapods 备注:苹果系统升级 OS X EL Capitan 后改为$sudo gem install -n /usr/local/bin cocoapods
(2) $pod setup
如果没有报错,就说明一切安装就成功了!
Terminal会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引.(文章末尾附使用镜像索引的方法)
//这里详细说明,第一次安装cocoa pods,使用pod install,pod search,等指令会自动进入pod setup这一步
然后出现 Setting up CocoaPods master repo
(这一行字可能会持续很久,因为在下载个文件(340M左右),下载进度根据网络状态决定,另外有个办法可
以查看下载进度----
cd ~/.cocoapods/ (这就是进入cocoa pods文件夹的代码)
du -sh * (查看大小,最终大小340M左右)
安装成功后,你会看到:
速度有些慢,耐心等待~~
一切顺利的话会出现一行绿色的字 setup completed 这就代表彻底装好了,如果出现这组代码
1.可能你网络中途断了,跟vpn没多大关系,国内网能下载,只是延迟高速度低点罢了 2.没按步骤来,乱改了东西造成很多未知错误,很难查到答案
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'... error: RPC failed; curl 56 SSLRead() return error -36 fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
-------就依次执行下面的步骤
sudo rm -fr ~/.cocoapods/repos/master (这一句执行完后重新打开控制台)
rm -fr ~/Library/Caches/CocoaPods
sudo gem update --system
sudo gem update
sudo gem cleanup
pod setup
三、使用CocoaPods
如果之前做的一切顺利,接下来就可以体验体验CocoaPods的神奇之处了,需要经过以下几步:
为了演示这个过程,我创建了一个名为CocoaPodsTest的工程。
1、创建Podfile
CocoaPods的一切都是从一个名为Podfile的文件开始的,我们需要先创建这个文件。个人习惯使用命令行,我会这样做:
- $ cd /Users/wangzz/Desktop/CocoaPodsTest
- $pod search 第三方
- $ touch Podfile
- 首先进入到工程的根目录下,创建空白的Podfile文件,创建完毕的目录结构如下图:
2、编辑Podfile
根据需要,我们可以在Podfile文件中写入需要用到的第三方库,以SBJson、AFNetworking、Reachability三个库为例,我的Podfile内容如下:
$vim Podfile
写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
- platform :ios, '7.0'
- pod 'AFNetworking', '~> 2.0'
- pod 'SBJson', '~> 4.0.0'
- end
.导入第三方库
$pod install
再来看看工程根目录发生的变化,如下图:
可以看到,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。
(PS:篇幅有限,Podfile.lock文件会放到系列文章的下一篇介绍,敬请关注。)
再看看刚才执行完pod install命令打印出来的内容的最后一行:
- [!] From now on use `CocoaPodsTest.xcworkspace`.
提示我们从现在起,我们需要使用CocoaPodsTest.xcworkspace文件来开发。
对于工程发生的变化,有几点需要说明:
- 第三方库会被编译成静态库供我们正真的工程使用
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。
- 我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。
原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。