前言
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搜不到库的问题, 搜索类库失败的解决办法
-
执行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
网友评论