【问题标题】:How can I avoid this ruby illegal instruction error when updating a cocoapod?更新 cocoapod 时如何避免这个 ruby​​ 非法指令错误?
【发布时间】:2021-12-31 20:41:46
【问题描述】:

tldr:当我尝试更新我的 pod 时,Ruby 报告了一条非法指令,可能是因为我使用了它的两个不同版本。

我不确定我的问题是什么,如果有帮助,我会很乐意添加更多信息。

我有一台新的 M1 Pro Mac,并一直在尝试让一个 XCode 项目(一个 iOS 应用程序)在它上面运行。它很高兴为我的手机构建,但无法为模拟器构建。基于this answer,我尝试更新cocoapods,然后更新我用于我的项目的pods(一些Google Firebase pods)。当我运行pod update 时,我得到以下结果:

Update all pods
Updating local specs repositories
/Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000100224000
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]

然后是数百行报告 (saved here)。它还保存诊断报告 (here)。我相信这两个都是红鲱鱼,但我想包括它们以防万一。

我的猜测是该库是 2.6.0,而 ruby​​ 本身是 2.6.8 版本。这两个都是旧的,它们也是不同的版本。我尝试更新 ruby​​、gem 并重新安装了 cocoapods,但这些都没有改变这些版本号。任何帮助更新这些版本将不胜感激。

对于这样一个间接的问题,我深表歉意;如果我更确定问题是什么,我可能会解决它。

【问题讨论】:

    标签: ruby xcode cocoa rubygems cocoapods


    【解决方案1】:

    我认为问题在于我新更新的 ruby​​ 版本没有被复制到我的自制路径中。这个命令 (from this answer) 最终解决了它!

    PATH=/usr/local/opt/ruby/bin:$PATH
    GEMSDIR=$(gem environment gemdir)/bin
    PATH=$GEMSDIR:$PATH
    export PATH
    

    【讨论】:

      【解决方案2】:

      如果你在 M1 芯片上,通过 gem (sudo gem uninstall cocoapods) 卸载 cocoapods 包,然后用 homebrew (brew install cocoapods) 重新安装它,这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2019-07-25
        • 1970-01-01
        • 2018-07-30
        • 2020-10-17
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        • 2019-05-03
        • 2011-08-03
        相关资源
        最近更新 更多