You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac上Flutter 2.6的CocoaPods与Ruby兼容问题(pod install失败)

针对Flutter老项目环境配置问题的解决方案

1. 在M1 Mac上安装Ruby 2.7.5(绕过OpenSSL 1.1废弃限制)

Homebrew官方已禁用openssl@1.1,可通过以下两种方式解决:

  • 方法一:用OpenSSL 3兼容安装
    Ruby 2.7.5可适配OpenSSL 3,执行以下命令:
    # 安装依赖
    arch -arm64 brew install openssl@3 readline libyaml gmp zlib
    # 配置编译参数指向OpenSSL 3
    export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3)"
    # 安装Ruby 2.7.5
    rbenv install 2.7.5
    
    若安装失败,可给ruby-build打兼容性补丁:
    curl -fsSL https://github.com/rbenv/ruby-build/pull/2148.patch | patch -d "$(rbenv root)"/plugins/ruby-build -p1
    rbenv install 2.7.5
    
  • 方法二:使用第三方Tap获取openssl@1.1
    第三方源仍保留openssl@1.1,执行:
    arch -arm64 brew install rbenv/tap/openssl@1.1
    export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix rbenv/tap/openssl@1.1)"
    rbenv install 2.7.5
    

2. CocoaPods 1.11.3与Ruby 3.3.6兼容吗?

不兼容。CocoaPods 1.11.3是2021年版本,内部使用了Ruby 3.0+已移除的File.exists?方法,无法适配Ruby 3.x系列,必须降级到Ruby 2.7.x或更低版本(2.6-2.7均可)。

3. 解决pod install时的undefined method 'exists?' for class 'File'错误

错误根源是Ruby与CocoaPods版本不兼容,按以下步骤修复:

  1. 按问题1的方法安装Ruby 2.7.5
  2. 切换到该Ruby版本:
    # 仅在当前项目目录生效
    cd 你的Flutter项目根目录
    rbenv local 2.7.5
    # 或全局生效(可选)
    rbenv global 2.7.5
    
  3. 重新安装对应版本的CocoaPods:
    gem uninstall cocoapods --all
    gem install cocoapods -v 1.11.3
    
  4. 清理Pods并重新执行安装:
    cd ios
    pod deintegrate
    rm -rf Pods Podfile.lock
    pod install
    

4. 是否无需修改代码库即可运行项目?

可以。所有问题均为环境依赖版本不匹配导致,只要配置好Flutter 2.6、Ruby 2.7.5、CocoaPods 1.11.3的对应环境,无需修改项目代码即可正常构建运行。

内容的提问来源于stack exchange,提问作者Sara Samer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:13:13