mac 升级后cocopods无法执行

使用pod install出现如下错误
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
这是Mac升级系统导致,当你的Mac系统升级为 high siera的时候,别忘记更新cocoapods。
执行命令:
$ sudo gem update --system
$ sudo gem install cocoapods -n/usr/local/bin

最近换新电脑了,在安装cocoapods的时候遇到了一点儿麻烦,特此记录

1.查看你的ruby

gem sources -l

输入上面的命令以后,你会得到一下结果

*** CURRENT SOURCES ***

https://rubygems.org/

这一步是切换ruby的镜像源,mac默认的源地址是rubygems.org,但是这个地址在天朝是不能用,好在咱们有万能的淘宝

update - 2016-11-28:现在淘宝的镜像不维护了,改用https://gems.ruby-china.org

2.切换ruby源到ruby-China

gem sources —remove https://rubygems.org
gem sources -a https://gems.ruby-china.org

3.安装cocoapods

sudo gem install -n /usr/local/bin/cocoapods

如果你的系统低于10.11版本,可以使用一下命令

sudo gem install cocoapods

在这一步很可能会出现下面这么一个恶心的东西:

activesupport requires Ruby version >= 2.2.2

他告诉你,想要安装cocoapodsruby的版本必须高于2.2.2,那么就只能升级ruby,命令如下:

sudo gem install activesupport -v x.x.x 
// 后面的版本号只要高于2.2.2就行了

这个时候,你再去运行上面的安装命令,就可以成功安装的,有些同学使用WiFi来安装,有时候网络不稳定,可能会等的比较久,耐心等待就好了

update 2017.2.13
等你修改或者升级好了gem版本以后,你还可能遇到下面这种问题

fuzzy_match库安装错误,简直不能忍了,一步步的折磨人...
这个问题是因为路径问题,你只需要指定match的安装位置就行了
改换成下面👇这条命令

sudo gem install -n /usr/local/bin cocoapods

有的同学可能会想到另一个问题,我换了路径以后,之前安装的是不是要删掉(强迫症患者),不用担心,gem会复用之前装好的东西的。

4.设置pod仓库

pod setup

这里也有一个坑,那就是当你输入这个命令的时候,会出现这样几个提示:

Setting up CocoaPods master repo
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master

Cloning into 'master'...
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

而且一片红色,很让人心火大。其实呢,第一次使用setup命令的时候并不会出现这样的东西,但是有人不能等或者等了好久觉得可能不行了,然后关掉窗口,终止了,这样你以后打开窗口再次使用setup命令的时候,就会一直出现上面那几句提示。这个时候,你可以先移除之前的设置,然后找个网络比较好的地方,继续setup

sudo rm -fr ~/.cocoapods/repos/master
// 移除命令

5.测试是否安装成功

setup那一步成功以后,会出现一个绿色的Setup completed!然后使用下面命令测试是否成功.如果成功,则会直接显示一行数字版本号,那么就可以开始上手开发了...

关于如何使用,那么请出门左转,看看这篇文章,很详细的讲解了如何使用cocoapods

6.有时候cocoapods会抽风

有时候,你明明没有动过cocoapods,可他就是坏了,不能用了,比如你在执行pod install的时候可能见到过下面这种问题

[!] Unable to satisfy the following requirements:
- `Firebase/Core` required by `Podfile`
None of your spec sources contain a spec satisfying the dependency: `Firebase/Core`.

You have either: 
* out-of-date source repos which you can update with `pod repo update`.
* mistyped the name or version. 
* not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.

看到这么火红的一片错误,你甚至连把这些信息看完的心情都没有,更别说还是英文的(好吧,无意中透露了什么东西😜)...

而且,这个问题更诡异的地方在于,你在Podfile里面导入的相应版本库,他找不到,我擦~~~
github上明明已经更新到某个版本了,你就是从README里面copy出来的,你坚信自己只按了Ctrl + C -> Ctrl + V,难道cocoapods出轨了?WTF?

这个问题的原因在于,你的cocoapods太久没有更新了,以至于版本落后太多...
去更新到最新版本是你的唯一选择,执行下面这个命令来更新到最新的版本:

// 更新到最新的预览版,一次到底
sudo gem install cocoapods --pre

嗯,就是这样,此时你可以安心的放下鼠标等胜利了🙊
然而,有些同学的电脑可能还是不行,因为cocoapods在本地的缓存
莫慌,执行下面这段万能的命令:

// 移除本地master
sudo rm -fr ~/.cocoapods/repos/master
// 移除本地缓存
sudo rm -fr ~/Library/Caches/CocoaPods/
// 重新setup,如果网速较慢,可以在后面加上 --verbose
pod setup

嗯,差不多了
如果你在setup这一步等了很久,很久,很久,久......
请把该文章网上翻,看第五点

7.Swift3.0问题

又是swift3.0,最近一直在解决这个家伙的问题,各种升级
cocoapods里面它有时候也会引起问题,在你执行pod install命令的时候,会出现很长一段文字警告信息
好吧,不啰嗦了,直接上方法:

post_install do |installer| 
  installer.pods_project.targets.each  do |target| 
      target.build_configurations.each  do |config| config.build_settings['SWIFT_VERSION'] = '3.0' 
      end 
   end 
end

嗯,是的,就这么办...
如果还是不行,呃...
请出门右拐,看这篇文章

8.搜索到的库版本过低

很多时候,我们会通过search命令搜索github上的repos,找到合适的repo以后直接复制pod 'xxx'
然而这里很多时候我们搜索到的库,版本其实低于其真正的版本,因为这个搜索其实对本地缓存好的search list进行索引的,而这个索引是在安装cocospod时候的数据,期间某个repo的作者可能更新了

解决这个问题的方法就是更新本地的`list数据,命令如下:

pod repo update

9.更新pod版本问题 - update 17.06.06

有时候你收到pod的更新提示,它会告诉你使用下面命令更新

sudo gem install cocoapods

然后你就happy的copy then paste, then

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/xcodeproj

WTF?造成这个问题的原因是,pod安装的时候没有指定路径,就被装在了默认的/bin下面,所以只需要指定路径就行了

sudo gem install -n /usr/local/bin cocoapods

当然你也可以自定义路径,之后就可以happy的使用sudo gem install cocoapods来更新

$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
$ pod --version

生命不息,折腾不止...
I'm not a real coder,but i love it so much!

作者:庸者的救赎
链接:https://www.jianshu.com/p/d405309a7d4e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容