iOS 之 Cocoapods安装
进入正题前,先来点前奏:了解cocoapods是某天看一个博客,那时才明白原来写项目不用一个个将三方库拷进项目里啊,惊讶的我是一塌糊涂的啊。。。(原谅我那时还没进入过正规的IT公司....好多你们自然而然接触的东西,都需要我一点一点自己去接触。。。)所以啊,赶紧的扒资料啊,博客啊,各种关于cocoapods的文献啊,尝试着去安装一下,就一下。。。靠,失败了????再试试,还不行???接着扒资料,合并总结。。再去安装,,成了?激动啊,就想着纪念一下。。。那就写个博客吧,把其中遇到的艰辛都列出来,也希望能帮助和我一样摸索的人。。。
好了,进入正题吧。。。。。。。。。。。。一步一步慢慢来!!!
1、什么是cocoapods
先说一下开发者在做项目时需要三方库怎么办?通常情况下是:先找到这个第三方库,下载下来;然后拉到自己的项目中去(拷贝到项目);最后在项目中自由的使用它!看起来很简单吧?不用怀疑,就是这么简单。但如果项目中需要的三方库很多呢?或者你使用的某个三方库有牵连到其他的类库呢,这样在下载、拷贝就变得十分麻烦。还有就是牵扯到项目中使用的三方库更新,也是个麻烦问题。那么现在就是使用Cocoapods的时候了。
CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具,也是最常用、最有名的类库管理工具。利用 CocoaPods,可以定义自己的依赖关系 (称作pods),并且随着时间的变化,以及在整个开发环境中对第三方库的版本管理非常方便。开发者通过Cocoapods,只需要一行命令就可以解决问题,并且目前为止,大部分开源类库,都是支持Cocoapods的。所以,学会使用Cocoapods吧 ,这是开发者的一大利器啊。
2、安装cocoapods
打开mac终端,使用终端命令去安装cocoapods,步骤如下:
1>输入命令:
sudo gem install cocoapods (这是安装cocoapods的命令)。
苹果系统升级 OS X EL Capitan 后改为 $ sudo gem install -n /usr/local/bin cocoa pods
cocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby。-注:如果安装失败,就说明中国的威力依旧牛气啊。那么解决方式如下:
2>Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的。
方式如下:
移除本来的Ruby路径:
$ gem sources --remove https://rubygems.org/
添加淘宝镜像:
$gem sources -a https://ruby.taobao.org
好了,现在让我们检查一下,是否替换成功。接着输入:
gem sources -l
操作图如下:

3>现在一切就绪了,再执行步骤1
sudo gem install cocoapods。
就会安装成功。
注:如果执行完这一步出现错误如下图的话:你使用的Mac系统是:OS X EI Capitan

那么就是路径问题,OS X EI Capitan 直接把cocoapods干掉了(听说的,具体情况不知道。。想了解去自己去查吧),本人当时也是查了好久才找到解决方法. 原来苹果系统升级 OS X EL Capitan 后改为 $ sudo gem install -n /usr/local/bin cocoa pods
好了,现在重新终端输入:sudo gem install -n /usr/local/bin cocoa pods,就可以安装cocoapods。安装效果如上图显示。
4>更新gem
终端输入:
sudo gem update --system
可以升级到最新版本,效果图如下:

5>最后终端输入:
pod setup
pod setup之行后,终端会停留在 setting up cocoapods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,对于着急的人是个很大的耐心考验啊。。如果实在受不了漫长的等待的话,出去溜达溜达吧,回来就好了。。。如果你不的话,我在其他网站上看到这种方式:(本人是没试过,不过你可以试试看,成功的话,记得告诉一下。)这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。
以下引用iOS界:唐巧大神博客-- 关于《用CocoaPods做iOS程序的依赖管理》一文,需要的可以进去看看。
你也可以参考本文接下来的使用 cocoapods 的镜像索引一节的内容来提高下载速度。
3、使用 CocoaPods 的镜像索引
所有的项目的 Podspec 文件都托管在https://github.com/CocoaPods/Specs。第一次执行pod setup时,CocoaPods 会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有 80M 左右。所以第一次更新时非常慢,笔者就更新了将近 1 个小时才完成。
一个叫 akinliu 的朋友在 gitcafe 和 oschina 上建立了 CocoaPods 索引库的镜像,因为 gitcafe 和 oschina 都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将 CocoaPods 设置成使用 gitcafe 镜像:
pod repo remove master |
将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成http://git.oschina.net/akuandev/Specs.git 即可使用 oschina 上的镜像。
以上就是我当初安装cocoapods的所有安装过程和解决问题。特此纪念一下,也希望对需要的人有所帮助。。。
以下链接是本人安装cocoapods所参考的文章:
都是很受启发的好文章,希望对大家有所帮助。
iOS 之 Cocoapods安装的更多相关文章
- iOS开展-CocoaPods安装和使用教程
原文链接: iOS开展-CocoaPods安装和使用教程 修正已经增加了自己的理解. CocoaPods安装和使用教程 Code4App 原创文章.转载请注明出处:http://code4app.co ...
- iOS开发 - CocoaPods安装和使用教程
一.CocoaPods简介 1.什么是CocoaPods CocoaPods是iOS的包管理工具. 2.为什么要使用CocoaPods 在开发iOS项目时,经常会使用第三方开源库,手动引入流程复杂,并 ...
- iOS之Cocoapods安装
网上关于cocoapods的教程很多,关于它的优点我不赘述:但是我根据多次安装的经验,把我遇到的问题写一下,希望对新手有所帮助. 1. 设置输入源(由于默认的gem资源是国外的,由于历史原因,访问比较 ...
- (转)iOS工具--CocoaPods 安装使用总结
本文转载自:CocoaPods 安装使用总结(最新) 一.前言 关于什么是CocoaPods,使用CocoaPods的好处等问题本文不做说明,本文只是CocoaPods的安装和使用教程.根据此教程可以 ...
- IOS中CocoaPods安装与使用
网上有很多文章关于 cocoaPods配置文章,其实cocoaPods配置并不难,只是比较繁琐而已,我也是照着网站文章一步步搭建配置成功.写这篇文章的目的就是像做笔记一样,便于以后用的时候好回忆.废话 ...
- iOS 网络 -- cocoaPods 安装和使用教程
Code4App 原创文章.转载请注明出处:http://code4app.com/article/cocoapods-install-usage CocoaPods 是什么? 当你开发iOS应用时, ...
- iOS 之 cocoapods安装与使用
我们都知道第三方库,一般使用cocoapods管理,cocoapods在我们IOS开发中有着很大的作用. 好了,现在看下它的安装步骤: 1.打开终端,输入 sudo gem install cocoa ...
- IOS开发之开篇--CocoaPods安装
CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...
- iOS CocoaPods安装和使用图解
Cocoapods安装步骤 1.升级Ruby环境 sudo gem update --system 如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境 2.安装CocoaPo ...
随机推荐
- PHP -- Perl风格正则表达式
1.正则表达式作为一个匹配的模版,是由原子(普通字符,例如a-z),有特殊功能的字符(元字符,例如*.+ 和?等),以及模式修正符三个部分组成.2.在于Perl兼容的正则表达式函数中使用模式时一定要给 ...
- 浅谈JavaScript中的defer,async
引言 开始重读<<JavaScript高级程序设计>>一书,看到关于JavaScript中关于defer.async的部分.网上查询了点资料,觉得蛮好的.现在总结下. defe ...
- Json.Net 数据解析
参考资料: 随笔分类 - Json.Net系列
- 用<forEach>遍历list集合时,提示我找不到对象的属性
<c:forEach items="${list}" var="item"> <tr> <td>${item.UserId} ...
- 为什么为 const 变量重新赋值不是个静态错误
const 和 let 的唯一区别就是用 const 声明的变量不能被重新赋值(只读变量),比如像下面这样就会报错: const foo = 1 foo = 2 // TypeError: Assig ...
- I() 方法
I()方法的介绍及使用: http://www.jb51.net/article/51213.htm
- jQuery入门(2)使用jQuery操作元素的属性与样式
jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...
- PHP上传(单个)文件示例
通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> &l ...
- vue2.0学习(一)
1.解决双花括号在初始化时的闪烁,两种方式,一种是<div v-text="name"></div>,将用v-text指令来显示,类似于angular的ng ...
- Java总结篇系列:Java多线程(一)
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程 ...