当开发iOS应用时,会经常使用到第三方开源类库,比如AFNetworking, SDWebImage等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,那就“无穷尽也了”.还有一种情况, 项目中用到的类库有更新,你必须得重新下载新版本(比如AFNetworking从2.几的版本更新到3.几的版本)。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,CocoaPods出现了。
CocoaPods应该是iOS最常用最有名的类库管理工具了,但是如果使用它, 前期的环境设置必不可少了, 因此, 本篇文章就是说一下一个小白如何使用这个强大的工具.
1. 如何在Mac OS X上安装 Ruby运行环境(PS: Mac OS X系统)
(1) 安装XCode开发开发环境, 如有不会, 自行百度.
(-----------打开终端--------------)
(2) 安装 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, Michal Papis[https://rvm.io/]
(3) 用 RVM 安装 Ruby 环境
列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装(下面以rvm 1.27.0版本的安装为例)
$ rvm install 1.27.0
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
另附:
查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 1.26.11
(4) 设置 Ruby 版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.0.0 --default
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
这个时候你可以测试是否正确
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]
$ gem -v
2.1.6
这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下:
$gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org
要想验证是否替换成功了,可以执行:
$ gem sources -l
正常的输出结果:
CURRENT SOURCES
http://ruby.taobao.org/
到这里就已经把Ruby环境成功的安装到了Mac OS X上,接下来就可以进行相应的开发使用了。下一步就是使用CocoaPods进行开发了.
2. 如何使用CocoaPods?
(1)新建一个iOS项目;
(2)通过终端进入到项目文件夹(即XXX.xcodeproj同一个目录下, XXX为项目名, 与下面相同)
(3)新建一个Podfile文件
$ vim Podfile (当有这个文件时会打开这个文件, 没有时会新建这个文件并打开)
(4)写Podfile文件(此时输入i进入到编辑模式)
target 'XXX' do
platform :ios, '8.0'
pod 'AFNetworking'
end
按下esc键,然后输入:wq,就可以保存了。然后在终端输入pod install,就可以安装第三方库了.
(PS: 以上以XXX项目为例, 支持iOS8.0以上系统的应用, 并导入AFNetworking),
导入成功后, 在Finder中打开XXX文件夹, 会发现多出几个文件和文件夹, 此时打开XXX.xcworkspace文件即可, 以后打开项目时都通过这个文件打开.到此,
补充:更新------pod update, 查询------pod search XXX(例如: 查询SDWebImage: pod search SDWebImage, 查询完毕, q退出),这是我在开发过程中用到的命令.
关于CocoaPods的应用全部内容就是这些了, 文章编辑过程难免有人为错误, 如有错误希望批评指正, 交流过程即是学习; 在编辑过程中参考了多篇作者的文章, 因为文章数量较多, 就不一一感谢, 在此一并谢过, 如有侵权, 请留言.