Cocoapods安装各种坑及解决方案

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

2017-05-20  本文已影响91人  muyang_js的简书

前言

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 
这会有点慢,别急往下走,有办法

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搜不到库的问题, 搜索类库失败的解决办法

问题三 、(情况二)

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

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

上一篇下一篇

猜你喜欢

热点阅读