cocoapods的安装 升级版
步骤0 - 准备工作
首先需要切换到淘宝镜像服务器不然下面各个步奏会异常的卡顿(如果你曾经切换过可以查询出来)
查询:
$ gem sources -l
如果输出:
*** CURRENT SOURCES ***http://ruby.taobao.org/
则已经切换成功, 不然就:
$ gem sources --remove https://rubygems.org///等有反应之后再敲入以下命令$ gem sources -a http://ruby.taobao.org/
结束后,然后再次:
$ gem sources -l
如果输出:
*** CURRENT SOURCES ***http://ruby.taobao.org/
OK准备工作结束.
步骤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.26.11 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
步骤2 - 用 RVM 安装 Ruby 环境
$ rvm install 2.0.0
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
步骤3 - 设置 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
步骤4 - 安装cocoapods(第四步才是正题, ⊙﹏⊙b汗)
$ sudo gem install cocoapods
会显示:
nizege:~ chenenze$ sudo gem install cocoapodsPassword:Fetching: i18n-0.7.0.gem (100%)Successfully installed i18n-0.7.0Fetching: thread_safe-0.3.5.gem (100%)Successfully installed thread_safe-0.3.5Fetching: tzinfo-1.2.2.gem (100%)...最后:19 gems installed
就安装完了.
这时你可以
$pod search AFNetworking
来检测一下
如果:
-> AFNetworking (2.5.4) A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 2.5.4'
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git - Versions: 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0, 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] - Subspecs: - AFNetworking/Serialization (2.5.4) - AFNetworking/Security (2.5.4) - AFNetworking/Reachability (2.5.4) - AFNetworking/NSURLConnection (2.5.4)
就说明成功了.
$which pod
输出
/usr/bin/pod
这样也可以检测是否安装成功.
使用篇:
首先创建一个X-code项目,先起名为CocoaPodsDemo(以将项目创建到桌面为例)
打开终端
$cd Desktop$cd CocoaPodsDemo
进入x-code工程文件夹后
$ls
发现里面只有三个x-code文件,现在需要创建Podfile文件, Podfile是什么?你可以理解为这是CocoaPods的配置文件,CocoaPods根据这个文件的记载去加载你所需要的第三方类库以及选择适合目标平台的版本来安装
创建Podfile文件:
$touch Podfile
编辑他(两种方式):
$open -e Podfile
或者:
$vi Podfile
在打开的文件里输入(这里装的是融云IMKit)
platform :ios, '8.4'pod 'RongCloudIMKit'pod 'MBProgressHUD', '~> 0.8'
第二行写的是需要安装的第三方库清单, 多个的话换行继续写, 不谢逗号后面的 默认安装最新版 一个一个的排(注意:引号等标点必须写对不然会报错!!!)
然后保存关闭第一种编辑方式直接command+s第二种:
:wq
然后执行:
$pod install
第一次安装会看到下面这句话卡住了很久
Setting up CocoaPods master repo
不要着急,其他他正在下载,我第一次用时也以为是卡了,但其实并没有,心急的哥们可以:
右键新建窗口
$cd ~/.cocoapods/$du -sh *
会显示下载了多少哦,着急的话就隔几秒du -sh一下吧
6、安装完成
[!] From now on use xxxxxxxxxxxxx.xcworkspace
.
Cocoapods会在你的项目目录中创建一堆新文件,但你主需要关心后缀为.xcworkspace的文件,用Xcode打开。现在有一个Pods项目在你的项目工作区,以及在Pods文件夹放着每一个你引入的库.
删除篇:
删除项目中已经配置的类库
和(一)类似,我们首先新建一个名为CocoaPodsDemo的项目,然后cd到项目目录下新建一个Podfile文件,并编写该文件,内容如下:
platform:ios, '7.0' pod 'AFNetworking', '~> 2.1.0'pod 'JSONKit', '~> 1.5pre'pod 'MBProgressHUD', '~> 0.8'
相比(一),我们将要加入的JSONKit的版本从1.1升级到1.5 preview版。
然后pod install,可以看到安装是成功的。
打开CocoaPodsDemo.xcworkspace文件,编译一下,会出现报错:
原因是JSONKit类库出现了各种各样的问题。
这个时候,我们很自然想到要删掉这个类库,然后尝试使用低版本的JSONKit(这也是我在(一)中为什么用1.1作为示例的原因)。
方法:
1.打开Podfile文件,删除JSONKit该行,即:
platform:ios, '7.0' pod 'AFNetworking', '~> 2.1.0'pod 'JSONKit', '~> 1.5pre'(删除该行)pod 'MBProgressHUD', '~> 0.8'
(如果想换成1.1版本,将被删除的行改成pod ‘JSONKit-NoWarning’, ‘~> 1.1’即可)
2.cd到当前项目目录下,重新执行pod install命令。输出信息如下(留意Removing JSONKit):
$ pod installAnalyzing dependenciesRemoving JSONKitDownloading dependenciesUsing AFNetworking (2.1.0)Using MBProgressHUD (0.8)Generating Pods projectIntegrating client project
3.重新打开xcworkspace文件,可以看到JSONKit被移除,再次编译将会通过:
在项目中移除CocoaPods
如果你觉得CocoaPods让你的项目出现了问题,不好用甚至是恶心,想将其从项目中彻底移除,也有方法:
1.删除工程文件夹下的Podfile、Podfile.lock和Pods文件夹。
2.删除xcworkspace文件。
3.打开xcodeproj文件,删除项目中的libpods.a和Pods.xcconfig引用:
4.打开Build Phases选项,删除Check Pods Manifest.lock和Copy Pods Resources:
完成,编译运行,无错通过。
个人感觉,从项目中移除某个类库还算是可以的,但是移除整个CocoaPods就有点麻烦了(也可能是我没有找对方法),希望CocoaPods能作出改进。
另外,如果在编辑工程时不小心删除了某个文件,如Podfile.lock,那么我们就要用上面的方法先移除整个CocoaPods,然后重新建立Podfile和使用pod install命令重装CocoaPods(有够麻烦的)。