安装CocoaPods之前要先安装Ruby环境
步骤1 -安装RVM
RVM 是干什么的这里就不解释了,后面你将会慢慢搞明白。
<span class="gp" style="background-color:#c0c0c0"> $ curl -L https://get.rvm.io | bash -s stable</span>
期间可能会问你sudo管理员密码,这里可能需要等待一段时间后就可以成功安装好 RVM。
案例信息如下:
lihuifengdeMacBook-Pro:~ lihuifeng$ curl -L https://get.rvm.io | bash -s stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 184 100 184 0 0 8 0 0:00:23 0:00:21 0:00:02 8
100 22817 100 22817 0 0 523 0 0:00:43 0:00:43 --:--:-- 1056
Downloading https://github.com/wayneeseguin/rvm/archive/1.26.10.tar.gz
Downloading https://github.com/wayneeseguin/rvm/releases/download/1.26.10/1.26.10.tar.gz.asc
Found PGP signature at: 'https://github.com/wayneeseguin/rvm/releases/download/1.26.10/1.26.10.tar.gz.asc',
but no GPG software exists to validate it, skipping.
Upgrading the RVM installation in /Users/lihuifeng/.rvm/
RVM PATH line found in /Users/lihuifeng/.profile /Users/lihuifeng/.bashrc /Users/lihuifeng/.zshrc.
RVM sourcing line found in /Users/lihuifeng/.bash_profile /Users/lihuifeng/.zlogin.
Upgrade of RVM in /Users/lihuifeng/.rvm/ is complete.
# lihuifeng,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
--这里就表示已经成功安装了--
然后,载入 RVM 环境
<span class="gp" style="background-color:#c0c0c0">$ <span class="nb">source ~/.rvm/scripts/rvm</span></span>
检查一下是否安装正确 :输入命令 rvm -v ,如果正确会列出RVM版本 如下所示:
<span class="gp" style="background-color:#c0c0c0"> $ rvm -v </span>A RVM version 1.26.10 (latest) is installed yet 1.25.28 (stable) is loaded. Please do one of the following: * 'rvm reload' * open a new shell * 'echo rvm_auto_reload_flag=1 >> ~/.rvmrc' # for auto reload with msg. * 'echo rvm_auto_reload_flag=2 >> ~/.rvmrc' # for silent auto reload.
<span style="font-size:18px;"><span class="gp" style="background-color:#c0c0c0"> $ rvm install 2.0.0</span></span>
同样继续等待漫长的下载,编译过程,完成以后就安装好了。
A RVM version 1.26.10 (latest) is installed yet 1.25.28 (stable) is loaded.
Please do one of the following:
* 'rvm reload'
* open a new shell
* 'echo rvm_auto_reload_flag=1 >> ~/.rvmrc' # for auto reload with msg.
* 'echo rvm_auto_reload_flag=2 >> ~/.rvmrc' # for silent auto reload.
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
<span style="font-size:18px;"><span class="gp" style="background-color:#c0c0c0"> $ rvm 2.0.0 --default</span></span>
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
测试是否正确
<span style="font-size:18px;"><span class="gp"><span style="background-color:#c0c0c0"> </span>lihuifengdeMacBook-Pro:~ lihuifeng$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13.1.0] lihuifengdeMacBook-Pro:~ lihuifeng$ gem -v 2.2.2 <span class="o"><span class="o"><span class="o"><span class="gp"><span style="background-color:#c0c0c0"> </span>这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下: <span class="gp" style="background-color:#c0c0c0"> $gem <span class="nb">source -r https://rubygems.org/ <span class="gp">$ gem <span class="nb">source -a https://ruby.taobao.org lihuifengdeMacBook-Pro:~ lihuifeng$ gem source -r https://rubygems.org/ https://rubygems.org/ removed from sources lihuifengdeMacBook-Pro:~ lihuifeng$ gem source -a https://ruby.taobao.org https://ruby.taobao.org added to sources </span></span></span></span></span></span></span></span></span></span>
要想验证是否替换成功了,可以执行:
$ gem sources -l
正常的输出结果:
lihuifengdeMacBook-Pro:~ lihuifeng$ gem sources -l
这里就表示已经把Ruby环境成功的安装到了Mac 上了。
现在就要安装CocoaPods了,我们终于准备完成了
前言介绍
在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确地配置他们有时候是非常繁琐的事情,幸运的是CocoaPods是一个很好的解决方案。
什么是CocoaPods
CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。
Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库。
接下来我们将介绍CocoaPods的使用。
CocoaPods的核心组件
CocoaPods是用Ruby写的,并划分成了若干个Gem包。
CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、 CocoaPods/Core和CocoaPods/Xcodeproj。
CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。
CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。
Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。
Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
CocoaPods / Xcodeproj:这个包负责处理工程文件,它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj。
Cocoapods安装步骤
1、升级Ruby环境
终端输入:$gem update --system
此时会出现
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system
这个是因为你没有权限去更新Ruby
这个时候你可以在终端使用:$sudo gem update —system来进行升级
这个时候表示Ruby升级完成。
2、安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站,方法如下:
1、gem sources --removehttps://rubygems.org/
2、gem sources -ahttps://ruby.taobao.org/
可以使用下面的命令(红色部分)查看是否更换镜像成功(如下图所示):
$ gem sources -l
3、安装Cocoapods,在终端输入命令
$sudo gem install cocoapods
这个时候会提示你输入密码,注:在终端输入密码不会有提示,光标也不会移动,一定要注意
开始安装,如下图:PS:这个过程可能花费时间比较长
安装成功如下:
4、使用search命令搜索类库名:
$pod search AFNetworking
如果CocoaPods支持,将会输出搜索到的所有类库版本和信息,以及在Podfile中配置的写法,终端返回信息如下:
-> AFNetworking (2.3.1)
A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 2.3.1’(这个语句是需要在编辑Podfile的时候输入的命令,即是如何安装下载相关类库的指令)
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,
1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
- Sub specs: - AFNetworking/Serialization (2.3.1) -
AFNetworking/Security (2.3.1) - AFNetworking/Reachability (2.3.1) -
AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession (2.3.1)
- AFNetworking/UIKit (2.3.1)
-> AFNetworking+AutoRetry (0.0.5)
Auto Retries for AFNetworking requests
pod 'AFNetworking+AutoRetry', '~> 0.0.5'
- Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
- Source: https://github.com/shaioz/AFNetworking-AutoRetry.git
- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]
5、需要在工程中创建一个Podfile文件,
使用命令:
$cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径)
$ touch Podfile(创建Podfile文件)
然后使用vim编辑Podfile文件,使用命令:
$ vim Podfile
进入如下界面
然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑:
$platform:ios, '7.0'
$ pod 'AFNetworking', '~> 2.3.1'
在编辑完成后按“esc”,
在按“:”,这个时候输入wq,点击回车,保存并退出。
这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的一行语句,如下图
然后在终端输入命令安装相应的第三方类库
$pod install
因为这个过程需要下载相应的类库,所以时间和网速有关。
安装成功之后截图如下:
这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。
iOS 最新版 CocoaPods 的安装流程
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.使用新的源
$gem sources -a https://ruby.taobao.org/
3.验证新源是否替换成功
$gem sources -l
4.安装CocoaPods
(1) $sudo gem install cocoapods 备注:苹果系统升级 OS X EL Capitan 后改为 $sudo gem install -n /usr/local/bin cocoapods
(2) $pod setup
5.更新gem
$sudo gem update --system
6. 新建工程,并在终端用cd指令到文件夹内
$pod search 第三方
7.新建文件 vim “Podfile”,
$vim Podfile
写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
platform:ios, '6.0'
pod 'AFNetworking', '~> 2.3.1' <-------第三方
8.导入第三方库
$pod install
9.退出终端
以下是我用以前的安装流程安装时出现的一些错误
终端 cocoapods 下载bug调试:
错误1:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解决方案:把安装流程中 $gem sources -a http://ruby.taobao.org/ ---改为----> $gem sources -a https://ruby.taobao.org/
错误2:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决方案:苹果系统升级OS X EL Capitan后会出现的插件错误,将安装流程 4.安装CocoaPods 的 (1)sudo gem install cocoapods ——>改为sudo gem install -n /usr/local/bin cocoapods
错误3:
[!] Unable to satisfy the following requirements: - `AVOSCloud (~> 3.1.6.3)` required by `Podfile`
Specs satisfying the `AVOSCloud (~> 3.1.6.3)` dependency were found, but they required a higher minimum deployment target.
解决方案:安装流程:Podfile文件 中 platform:ios, ‘6.0’ 后边的 6.0 是平台版本号 ,一定要加上