美文网首页Cocoapods安装各种坑及解决方案
Xcode 8.3最新Cocoapods 安装中的妖魔鬼怪

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

作者: muyang_js的简书 | 来源:发表于2017-05-20 01:32 被阅读91次

    前言

    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
    

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

    相关文章

      网友评论

      本文标题:Xcode 8.3最新Cocoapods 安装中的妖魔鬼怪

      本文链接:https://www.haomeiwen.com/subject/ceyuxxtx.html