美文网首页
升级Xcode14后pod install报错

升级Xcode14后pod install报错

作者: 轩辕长秀 | 来源:发表于2022-12-02 08:57 被阅读0次

    解决这个问题其实已经有一段时间了,但最近换了一台电脑又遇上了同样的问题,重新把资料又查了一遍......
    为了避免再次出现这种拍断大腿的事情,这里把原因,解决思路和步骤都记录一遍,以供自己查询和大家参考。

    原因

    先看错误:
    Xcode14:

    proj] Unknown object version (56). (RuntimeError)
        11: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/ruby_executable_hooks:24:in `<main>'
        10: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/ruby_executable_hooks:24:in `eval'
         9: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/pod:23:in `<main>'
         8: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/pod:23:in `load'
    

    Xcode14.1

    Ignoring ffi-1.14.2 because its extensions are not built. Try: gem pristine ffi --version 1.14.2
    Analyzing dependencies
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface/error_report.rb:34:in `force_encoding': can't modify frozen String (FrozenError)
    

    实际的原因就是Ruby的版本低了,我们都知道CocoaPods是用Ruby写的,那这里我们就需要去升级Ruby的版本,升级Ruby的版本需要先安装RVM......

    解决思路

    OK ,由此我们得出
    pod install失败的原因:masOS系统自带的Ruby版本过低
    解决方案:手动升级Ruby版本(这里是升级到目前的最新版本3.0.0)

    步骤

    1.安装RVM(Ruby Version Manager)

    1.1:命令行安装

    curl -L get.rvm.io | bash -s stable 
    

    如果收获如下报错:

    curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 3 ms: Connection refused
    

    不要慌,原因不可描述,If you know, you know。
    方案一:打开你的梯子,如果还是报错,那么请看方案二
    方案二:如果开了梯子也没有用,那么可能就是域名解析也被污染了,我们就只有去修改主机文件了,也就是host文件,把某个域名强制解析到固定的IP。命令就不水字数了,常用vim的同学肯定都会,不常用的打开了你也不一定会退出🐶。有兴趣的自己Search即可。这里推荐一个好用的工具SwitchHosts。他在Github上开源,直接下编译好的安装包即可:https://github.com/oldj/SwitchHosts/releases
    现在我们需要拿到raw.githubusercontent.com这个域名的IP,可以通过这个网站查询https://www.ipaddress.com
    目前它的IP是199.232.68.133,在host中添加如下内容:
    199.232.68.133 raw.githubusercontent.com
    然后继续执行RVM的安装命令即可,如果超时就多执行几次,如果下载比较慢就稍等。
    1.2:配置RVM环境变量
    安装完成后,你在终端会看到两句提示:

    To start using RVM you need to run `source /Users/你的电脑用户名/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.
    

    意思是你要先执行source /Users/你的电脑用户名/.rvm/scripts/rvm,然后重启终端。(Tips:如果不想重启,直接刷新环境变量即可source ~/.bash_profile。如果你还没有.bashrc|.bash_profile|.profile|.zshrc这些文件中的任意一个,那么需要先创建,请自行Search)
    查看RVM版本号,如果成功执行,意味着已经安装成功。

    rvm -v
    

    2:升级Ruby

    查看Ruby的最新版本(目前是3.0.0)

    rvm list known
    

    安装查到的最新版本

    rvm install 3.0.0
    

    下载完成后查看是否安装成功

    rvm list
    

    看到最新的版本(目前是3.0.0)即为成功,然后切换默认版本为 3.0.0.

    rvm use 3.0.0 --default
    

    执行 rvm list查看一下是否切换成功,看到如下结果即算成功。

    =* ruby-3.0.0 [ x86_64 ]
    
    # => - current
    # =* - current && default
    #  * - default
    

    3:重新下载CocoaPods

    切换了Ruby,所以要重新下载CocoaPods

    查看本地已安装的CocoaPods版本

    gem list --local | grep cocoapods
    

    重新安装CocoaPods

    sudo gem install cocoapods
    

    再执行一下gem list --local | grep cocoapods,如果看到pod版本已经是最新的就已经OK。

    cocoapods (1.11.3)
    cocoapods-core (1.11.3)
    cocoapods-deintegrate (1.0.5)
    cocoapods-downloader (1.6.3)
    cocoapods-plugins (1.0.0)
    cocoapods-search (1.0.1)
    cocoapods-trunk (1.6.0)
    cocoapods-try (1.2.0)
    

    到这里就升级结束,可以去正常使pod。如果有遇上其他报错的,可以私信。

    相关文章

      网友评论

          本文标题:升级Xcode14后pod install报错

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