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 ...
随机推荐
- grafana日志分析界面及导出的json文件
日志分析面板导出的json文件,效果图如下: 下载地址:http://files.cnblogs.com/files/xiaoming279/%E9%9D%A2%E6%9D%BF.zip 主机面板 主 ...
- php桥接设计模式
<?php //桥接模式 abstract class info{ protected $send=null; public function __construct($send){ $this ...
- Win7如何删除需要管理员权限才能删除的文件夹
在Windows 7系统运行中.往往会遇到想要删除某个文件夹时,系统提示:文件夹访问被拒绝 你需要权限来执行此操作,如何才能删除此类文件夹呢? ------------------ --------- ...
- 面试题目——《CC150》递归与动态规划
面试题9.1:有个小孩正在上楼梯,楼梯有n个台阶,小孩一次可以上1阶.2阶或者3阶.实现一个方法,计算小孩有多少种上楼梯的方式. 思路:第4个数是前三个数之和 注意:能不能使用递归,能不能建立一个很大 ...
- C# Httpclient编程
今天研究了一天C#如何添加cookie到httpcient里面,从而发请求时,能把cookie作为头部发出,最后发现根本加不进去. Httpclient的cookie是来自上一个请求的响应,httpc ...
- Android通过名称找图片
开发中往往会遇到这种情况:在Drawable文件夹中有若干张相似的图片(这里的相似指的是不仅图片名称相似,用途也相似),现在要根据用户的某个操作选出其中的一张.例如,在类似微信语音功能的开发中,按住“ ...
- JSP分页显示
首先要定义四个变量: int pageSize: //每页显示多少条记录 int pageNow: //希望显示第几页 int pageCount: //一共有多少页 int rowCount: // ...
- (转载)robots.txt写法大全和robots.txt语法的作用
1如果允许所有搜索引擎访问网站的所有部分的话 我们可以建立一个空白的文本文档,命名为robots.txt放在网站的根目录下即可.robots.txt写法如下:User-agent: *Disallow ...
- Multiload-ng
导读 Multiload-ng是一个 GTK2 图形化系统监视器应用,可集成到 Xfce.LXDE 及 MATE 的桌面面板中, 它 fork 自原来的 GNOME Multiload 应用.它也可以 ...
- Android 学习笔记
1.sleep(),wait(),notify(),notifyAll() sleep()是线程类的静态方法,阻塞线程一定时间后再次使线程处于可以被调度运行的状态wait(),notify(),not ...