Xcode 8.3最新Cocoapods 安装中的妖魔鬼怪

前言

cocoa pods 是不是用起来爽爽的呀?可是有时候这位老兄也会有脾气的,虽然能Google 很多安装教程, 但是别急、咱就一起来看看到底会遇到什么, 说不定你就能在这儿找到你想要的方法

1B01F100-FE85-459B-BBA5-C51F1B67ACD0.png

别闹,说正劲的

1. 检查环境

$ rvm -v

1.1 存在之前有安装的rvm 工具

macdeMacBook-Pro:~ yongen$ rvm -v
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]

1.2 不存在, 会蹦出这么一句

-bash: rvm: command not found

2.1 不存在RVM

这里会稍微等一会,也有可能网速原因,稍微久点
$curl -L https://get.rvm.io | bash -s stable

这句后面直接回车换行
$source ~/.rvm/scripts/rvm 

去查看 一下  $ rvm -v

2.2 存在RVM

直接安装最新版本的ruby 2.4.0

$ rvm install 2.4.0

急需安装,直接到 步骤3.

当然也可以安装自己中意的特定版本

查询历史版本   $ rvm list known
安装 喜欢的2.3.3版本  $ rvm install 2.3.3
如果自己要安装多个版本想查询一下 $ rvm list

怎么在多个ruby 版本中切换,来回使用

一定是自己已经安装了ruby版本之间的切换
$ rvm --default use 2.3.3

当然 你也可以删除 自己需要删除的ruby 版本

$ rvm remove 2.3.1

3. 升级一下系统gem

$ sudo gem update --system

4. 切换源


移除ruby 源
$ gem sources --remove https://rubygems.org/
添加源
$ gem sources --add https://gems.ruby-china.org/

以前安装cocoa pods的人知道淘宝的源
$ gem sources -a https://ruby.taobao.org/
但是这个已经在16年 6月 停止维护了,还是建议用上的ruby -China 的源
上面的两条语句还有中帅气的写法 $ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/

4.1 查看源

$ gem sources -l  
正常的输出结果:
macdeMacBook-Pro:~ yongen$ gem source -l
*** CURRENT SOURCES ***

https://gems.ruby-china.org

5. 安装cocoa pods

mac系统升级路径改了
$ sudo gem install -n /usr/local/bin cocoapods

等安装好了,查看安装版本 $ pod --version
设置仓库 $ pod setup 
这会有点慢,别急往下走,有办法

补充 若出现如下错误

yongendeiMac:~ yongen$ sudo gem install -n /usr/local/bin cocoapods
ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
          Unable to download data from https://gems.ruby-china.org/ - bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)
a.png

补充 1. 删除当前源

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

补充 2. 添加新的源,就可以就可以更新了

gem sources --add https://gems.ruby-china.com/

6. 使用cocoa pods

进入到你的工程目录下 $ pod init
 使用vim编辑器 $ vim podfile
最好在这之前你查询到自己要的类库版本 $ pod search 类库名

podfile 文件格式, 当然还有很多格式,在这给各位看官举个栗子

platform :iOS,'8.0'

target :YETest do
pod ‘AFNetworking’,'~>3.1.0'
end

以上才是cocoa pods的正确打开方式


老兄我们花一分钟时间进来是找问题的解决办法来的,你这什么鬼啊! 观众老爷别急,等我一一列举这里面的巨坑

问题一

ERROR: '/usr/local/bin' is not writable - it is required for Homebrew, try 'brew doctor' to fix it!

如果 rvm install 2.4.0 没有用,
可以用这段命令代替,好像可以自动安装最新版本的ruby

$ rvm autolibs read-only # read more here:https://rvm.io/rvm/autolibs
$ rvm install ruby

问题二

编译安装了ruby2.4.0。 然后安装gem时, 会有错误提示: ERROR: While executing gem ... (Gem::Exception) Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

这是因为 缺少 openssl
首先运行(它里面包含rvm 必须的openssl)
$ rvm requirements

$ brew install OpenSSL

方法二:

实在觉得自己不想要openssl
那好直接在上面步骤4 中添加源的时候,可以把https 的源改为http
作者已经亲试过淘宝的这个源:
$ gem source -a http://ruby.taobao.org/
使用一切正常

方法三:
这个方法完全是Google的在
ruby社区

然后重新配置, 在运行configure时加上了openssl路径信息即可。 正确编译的姿势如下:


$ cd ruby-2.3.0
$ ./configure  --with-openssl-dir=/usr/local/ssl
$ make
$ sudo make install

问题三 、(情况一)

Cocoapods搜不到库的问题, 搜索类库失败的解决办法

  • 执行pod setup

    • 其实在你安装CocoaPods执行pod install时,系统会默认操作pod setup,然而由于中国强大的墙可能会pod setup不成功。这时就需要手动执行pod setup指令,如下:
    • 终端输入:pod setup
    • 会出现Setting up CocoaPods master repo,稍等几十秒,最底下会输出Setup completed。说明执行pod setup成功。
    • 如果pod search操作还是搜索失败,如下:
    • 终端输入:pod search AFNetworking
    • 输出:Unable to find a pod with name, author, summary, or descriptionmatching 'AFNetworking' 这时就需要继续下面的步骤了。
  • 删除~/Library/Caches/CocoaPods目录下的search_index.json文件

    • pod setup成功后,依然不能pod search,是因为之前你执行pod search生成了search_index.json,此时需要删掉。
    • 终端输入:rm ~/Library/Caches/CocoaPods/search_index.json
    • 删除成功后,再执行pod search。
  • 执行pod search

    • 终端输入:pod search afnetworking(不区分大小写)
    • 输出:Creating search index for spec repo 'master'.. Done!,稍等片刻······就会出现所有带有afnetworking字段的类库。

问题三 、(情况二)

Cocoapods搜不到库的问题, 搜索类库失败的解决办法

关于cocoapods搜不到一些热门的库的问题,最近碰到一个问题 Cocoapods总是搜不到一些很热门的库,比如Masonry,SDWebImage等等
pod search Masonry
或者 pod search SDWebImage
总是提示未找到该类库,郁闷了,这么优秀的库都找不到。然后用pod lits
命令发现 字母K以后的库都没有。
发现原因
经过些许时间的推测和资料查找,发现pod search
和pod list
查找的都是本地的第三方类库,并不是服务器的类库,于是原因肯定就出在本地和远程不同步的问题。
解决方案
于是使用 pod repo update master
命令同步远程服务器的第三方类库,发现有可能是网络问题,有可能是远程服务器就是github,然后类库列表不全。然后想到了另外的办法,有大神在gitcafe和oschina上建立了CocoaPods索引库的镜像。因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
或者可用http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。

如果不想在pod install pod update
的时候不想升级specs
库 可以使用参数忽略掉

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

问题四

CocoaPods pod install/pod update更新慢的问题

在使用cocoapods 进行update 或者 install的时候,原因在于每次当执行命令时会去获取更新的pod specs,每次速度都不是很理想,参考网络上的办法,给出2个途径,可以结合使用

方法一:不检查CocoaPods specs更新

以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

方法二:使用CocoaPods specs国内镜像

使用国内对github上的specs仓库镜像, 现在每10分钟会进行一次同步 基本和主仓库保持一致
使用方法:

pod repo remove master
pod repo add master https://git.oschina.net/6david9/Specs.git
pod repo update

再在Podfile头部指定source
source 'https://git.oschina.net/6david9/Specs.git'

第二条命令执行的时候会比较耗时 这个时候要去把整个specs仓库clone一下 大概60M左右

额外说一点:

Ruby 常用命令
添加源 $ sudo gem sources -a http://ruby.taobao.org/
删除源 $ sudo gem sources -r https://rubygems.org/
安装 $ sudo gem install -n /usr/local/bin cocoapods
设置 $ pod setup
查看gem源 $ gem sources –l
gem自身升级 $ sudo gem update --system
查看版本 $ gem --version
清除过期的gem $ sudo gem cleanup
删除Cocoapods $ sudo gem uninstall  -n /usr/local/bin cocoapods
更新包 $ sudo gem update
列出本地安装的包 $ gem list

结尾: 如果有什么异议,欢迎各位看官遇到的问题请留言!!!

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

推荐阅读更多精彩内容