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 ...
随机推荐
- 关于Scrapy爬虫项目运行和调试的小技巧(下篇)
前几天给大家分享了关于Scrapy爬虫项目运行和调试的小技巧上篇,没来得及上车的小伙伴可以戳超链接看一下.今天小编继续沿着上篇的思路往下延伸,给大家分享更为实用的Scrapy项目调试技巧. 三.设置网 ...
- map、栈————下一个更大的元素(待定,栈解法学习中)
方法一 先遍历nums2,将每个元素后面第一个大的元素一起存入到map中,然后在遍历nums1,在map中找到. class Solution { public: vector<int> ...
- requests 常见方法总结
请求设置:requests.get/post ( url, data={}, params={}, headers={}, timeout=0.01, files={} Session() ...
- hdu5321 beautiful set(莫比乌斯反演)
设\(cnt[i]\)为权值为i的倍数的数的数量. \(f0[i],f1[i]\)分别为两种方法\(gcd=i\)的贡献是i的多少倍. \(F0[i],F1[i]\)分别为两种方法\(gcd\)为\( ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- Chrome扩展程序推荐
Chrome扩展程序 AdBlock 印象笔记 网页截图:注释&录屏 油猴 zenmate-vpn sourcegraph 推荐网站
- 脚本2,从1到99 ,添加用户user1,user2,。。。 user99
脚本2,从1到99 ,添加用户user1,user2,... user99 如果用户user$存在,脚本显示用户存在,否则添加用户,并显示添加用户成功. 脚本如下 [root@localhost ho ...
- VUEJS开发规范
VUEJS开发规范 基于组件化开发理解 组件命名规范 结构化规范 注释规范 编码规范 基于组件化开发理解 什么是组件? ``` 组件其实就是页面组成的一部分,好比是电脑中的每一个元件(如硬盘.键盘.鼠 ...
- Java 学习(11): 面向对象编程—继承(super,this)
Java 继承 what: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.子类从它的父类中继承可访问的数据域和方法,也 ...
- ActiveMQ maven
http://outofmemory.cn/java/mq/apache-activemq-demo