cocoapods的安装,使用,卸载,以及你可能会遇到的坑..
首先, 不会用cocoapods的话如过你接手某些新项目是用cocoapods写的你会疯, 其次他真的非常好用, 当然某些坑也是存在的,比方你用它导入了AFNetwork然后你须要改动一些AF的内部的代码以适应你项目的特殊需求,这时候cocoapods就会报错, 报错, 报错…
OK,以下步入正题
在安装CocoaPods之前,首先要在本地安装好Ruby环境。
MAC系统自带ruby环境可是某些老旧机型可能ruby版本号过低会报错,只是更新一下就好,而安装ruby须要RVM .
步骤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管理员password,以及自己主动通过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 cocoapods
Password:
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: 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-codeproject目录后
$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.删除project目录下的Podfile、Podfile.lock和Pods目录。
2.删除xcworkspace文件。
3.打开xcodeproj文件。删除项目中的libpods.a和Pods.xcconfig引用:
4.打开Build Phases选项。删除Check Pods Manifest.lock和Copy Pods Resources:
完毕,编译运行,无错通过。
个人感觉,从项目中移除某个类库还算是能够的。可是移除整个CocoaPods就有点麻烦了(也可能是我没有找对方法)。希望CocoaPods能作出改进。
另外。假设在编辑project时不小心删除了某个文件,如Podfile.lock,那么我们就要用上面的方法先移除整个CocoaPods,然后又一次建立Podfile和使用pod install命令重装CocoaPods(有够麻烦的)。
參考:
http://www.netfoucs.com/article/u010962810/66727.html
http://blog.sina.com.cn/s/blog_7008c3140101hrh7.html
http://www.tuicool.com/articles/iaqU3im
cocoapods的安装,使用,卸载,以及你可能会遇到的坑..的更多相关文章
- CocoaPods的 安装 /卸载/升级
CocoaPods用来管理第三方框架 Mac 安装 Cocoapods 导引如果你的 Mac OSX 升级到 10.11.x+, 并且需要安装 Cocoapods, 可以参考本博客.安装 rubyMa ...
- CocoaPods安装、卸载、使用说明(Mac ox 10.11+)
一.全新安装前,先检查是否有安装残留 由于Mac 10.11更改了安全机制,所以cocoapods得安装和卸载命令也有所改变, 1.如果之前装过cocopods,最好先卸载掉,卸载命令: $ sudo ...
- Cocoapods的安装,卸载和使用
[一]Cocoapods的安装 (1)Cocoapods的官方网站为: https://cocoapods.org/ .如果你的电脑已经安装了Ruby开发环境,那么在终端(Terminal)中使用以下 ...
- 安装、卸载 cocoapods
卸载cocoapods: localhost:~ je$ sudo gem uninstall cocoapods Remove executables: pod, sandbox-pod in ad ...
- iOS 最新版 CocoaPods 的安装使用
当在开发iOS应用时,会经常使用到很多的第三方开源类库,一般的方法是直接从GitHub下载,然后拖到项目中使用,如果该开源类库不依赖其他的类库,就可以直接使用:如果该开源类库还依赖一些其他的类库,则需 ...
- 笔谈 cocoapods的安装与使用
因为要重构播放器库,所以就需要参考网上的开源项目,在播放器开源项目这块,kxmovie开源项目是值得参考的一个项目.在github下载下来后,运行该工程,发现其用到了cocoapods来管理第三方库, ...
- OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin-master插件来加载三方框架
http://www.cnblogs.com/cheng923181/p/4883476.html OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin ...
- 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)
本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1> CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...
- Linux下软件安装,卸载,管理
一. 软件安装包的类型 通常Linux应用软件的安装有五种: 1) tar+ gz包,如software-1.2.3-1.tar.gz. 他是使用UNIX系统的打包工具tar打包的. 2) r ...
随机推荐
- 马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象
马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象 “未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,将很难生存下去.” 9月 ...
- (转)Hadoop Eclipse开发环境搭建
来源:http://www.cnblogs.com/justinzhang/p/4261851.html This document is from my evernote, when I was s ...
- 第五周-磁盘分区GPT、shell脚本练习、lvm详解
1. 描述GPT是什么,应该怎么使用 Linux中磁盘分区分为MBR和GPT. MBR全称为Master Boot Record,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的PC设备 ...
- 如何绑定host
绑定host一般分为windows和linux下两种情况. windows下,首先打开host文件,其操作步骤 ,打开 C:\Windows\System32\Drivers\etc\hosts的文件 ...
- yum-config-manager --add-repo=
[root@server0 yum.repos.d]# yum-config-manager --add-repo=ftp://192.168.31.121/centos7u4Loaded plugi ...
- Android实战简易教程-第二十八枪(Uri转String型实例)
接上一篇文章.我们能够轻易的获取所选图片的uri,那么我们考虑怎样将获取的uri转换成String型的地址呢? 接下来我们通过实例来研究.布局文件和上篇(二十七枪)一致,我们就不再列出,直接看Main ...
- 009实现一个算法来删除单链表中的一个结点,仅仅给出指向那个结点的指针(keep it up)
呵呵,这个题不能直接删除已知的结点.由于是单链表,不知道前驱,仅仅知道 后继结点,直接删除会使链表断开.只是我们能够删除已知结点的后继结点, 把后继结点的值赋值给已知结点. #include < ...
- jsp出现错误can not find the tag directory /web-inf/tags
百度google了一大圈没找到中文答案,无奈之下硬着头皮看了一个英文答案http://stackoverflow.com/questions/11502703/eclipse-can-not-find ...
- iOS开发-sqlite3使用
SQLite3使用 SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中. SQLite3 在XCode工程中,打开targets,在B ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...