Mac OS X 10.11.x 安装 Cocoapods 心路历程

原创 2016年08月30日 09:29:14

我用的是最新版的 Mac OS X 10.11.6 系统,在安装 Cocoapods 的过程中也是遇到了一些问题,下面就整个安装过程以及过程中出现的问题和解决方案作一下总结。

  1. Cocoapods 是什么?
    CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。
    使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。

  2. 具体安装流程

(1)查看 ruby 是否是最新版的。安装 Cocoapods 需要的 ruby 环境为 2.2.2 以上,而 Mac 自带的 ruby 版本为 1.8.7,ruby是通过rvm安装的,所以需要先安装 RVM。

$ ruby -v

(2)安装RVM

$ curl -L get.rvm.io | bash -s stable 
$ source ~/.bashrc
$ source ~/.bash_profile 

测试是否安装成功

$ rvm -v

(3)用RVM升级Ruby
查看当前ruby版本

$ ruby -v   

列出已知的ruby版本

$ rvm list known  

安装ruby 2.3.0

$ rvm install 2.3.0 

安装后查看ruby版本

$ rvm -v

(4)移除现有Ruby默认源(最新版的Xcode要将http 换成 https)

$ gem sources --remove https://rubygems.org/

安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站。

(5)使用新的源(最新版的Xcode要将http 换成 https)

$ gem sources -a https://ruby.taobao.org/

(6)验证新源是否替换成功

$ gem sources -l

(7)安装CocoaPods

$ gem install cocoapods 或
$ gem install -n /usr/local/bin cocoapods

$ pod setup

(8)使用镜像索引
这里写图片描述
出现这种错误是因为没有更换镜像索引。

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

更换镜像索引后,再次安装,终端提示如下,并卡住了!

Setting up CocoaPods master repo

Cocoapods在将它的信息下载到 ~/.cocoapods里
然后前往这个文件夹,不断预览它的大小,发现在不断增大,心里顿时舒坦了很多!

$ du -sh *

经过长时间的等待下载,终于提示安装成功!
这里写图片描述

有可能会遇到这个警告:
[!] Unable to find a pod with name, author, summary, or description matching ‘AFNetworking’

处理方法为:

$ rm ~/Library/Caches/CocoaPods/search_index.json

(9)检验 Cocoapods 是否安装成功

$ pod search AFNetworking

这里写图片描述

由上图可见 Cocoapods 安装成功!

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

连猴子都能看懂的 IOS 国际化(本地化)教程

语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。苹果设备遍布全球,往往一个应用要供给全世界各个范围内的人群使用。这时,做好应用的国...

对比 CGRectInset 与 CGRectOffset

CGRectInset 与 CGRectOffset 都是通过参数改变CGRect并返回一个CGRect类型的数据。总结出两者的区别在于:CGRectInset会进行平移和缩放两个操作。CGRectO...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

string类find函数返回值判定

代码示例 int main()  {      string s = "Alice Bob Charlie";    ...

KVC 中的 valueForKeyPath 高级用法

可能很多人对 - (nullable id)valueForKeyPath:(NSString *)keyPath; 这个方法不是很理解,实际上,这可以扩展到 KVC 中的高级用法上去。该方法非常强大...

IOS 之 UIPickerView 学习总结

1. UIPickerView 什么时候使用?通常在注册模块,当用户需要选择一些东西的时候使用,比如说城市,往往弹出一个 PickerView 给用户选择。2. UIPickerView 常见用法(1...

关于2011

熟悉技术,市场及同类产品的相关技术和市场占有率。追求财务自由和垒代码创作。追求分享的快乐。

Xcode 中的 debug 与 release 以及 skipping input stream 0 0 0x0 问题解决

Xcode生成的程序分为 debug 和 release 版本,总结一下,他们之间的主要区别在于:debug包含更多程序信息,面向开发者。release包含少量程序信息,app体积较小,且对性能进行了...

带你玩转 UIAlertController

UIAlertController 是 iOS 8 中推出的新特性,用以代替 UIAlertView 和 UIActionSheet。在开发中非常常见,今天作一下简要记录,用以备忘。之所以要把它单独拿...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)