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

macOS BigSur下安装CocoaPods失败,Flutter项目无法运行

问题描述

环境信息:

  • macOS BigSur 11.7.10
  • Xcode 13.2.1
  • Ruby 2.6.10p210
  • Flutter 3.7.0
  • Dart 2.19.0
  • DevTools 2.20.1

执行以下命令安装CocoaPods时失败:

sudo gem install cocoapods

或

sudo gem install cocoapods -v 1.11.3

错误提示为gem原生扩展构建失败,需先安装开发工具。由于CocoaPods未安装,Flutter项目无法在iPhone 12 Pro上启动。已尝试brew安装、启动命令行工具、打开Android Studio等方法,问题仍未解决。

安装CocoaPods的错误日志(中文翻译)

imacpro1@192 ~ % sudo gem install cocoapods -v 1.11.3
密码:
正在获取 cocoapods-downloader-1.6.3.gem
正在获取 cocoapods-core-1.11.3.gem
正在获取 zeitwerk-2.6.12.gem
正在获取 activesupport-6.1.7.6.gem
正在获取 cocoapods-1.11.3.gem
成功安装 cocoapods-downloader-1.6.3
正在构建原生扩展,这可能需要一段时间...
错误:安装cocoapods失败:
    错误:gem原生扩展构建失败。

 当前目录:/Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20231205-636-1vxfozq.rb extconf.rb
*** extconf.rb 执行失败 ***
由于某些原因无法创建Makefile,可能缺少必要的库和/或头文件。查看mkmf.log文件获取更多详情,你可能需要配置选项。

提供的配置选项:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
    --with-ffi_c-dir
    --without-ffi_c-dir
    --with-ffi_c-include
    --without-ffi_c-include=${ffi_c-dir}/include
    --with-ffi_c-lib
    --without-ffi_c-lib=${ffi_c-dir}/lib
    --enable-debug
    --disable-debug
    --enable-system-libffi
    --disable-system-libffi
    --with-libffi-config
    --without-libffi-config
    --with-pkg-config
    --without-pkg-config
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': 编译器无法生成可执行文件。(RuntimeError)
你必须先安装开发工具。
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:546:in `block in try_link0'
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/tmpdir.rb:93:in `mktmpdir'
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:543:in `try_link0'
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:570:in `try_link'
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:672:in `try_ldflags'
    来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1832:in `pkg_config'
    来自 extconf.rb:9:in `system_libffi_usable?'
    来自 extconf.rb:46:in `<main>'

要查看扩展编译失败的原因,请查看位于以下路径的mkmf.log文件:

 /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/ffi-1.16.3/mkmf.log

extconf执行失败,退出码1

Gem文件将保留在 /Library/Ruby/Gems/2.6.0/gems/ffi-1.16.3 以供检查。
结果已记录到 /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/ffi-1.16.3/gem_make.out
imacpro1@192 ~ % 

Flutter项目启动错误日志(中文翻译)

正在以调试模式在iPhone 12 Pro上启动lib/main.dart...
警告:未安装CocoaPods,跳过pod安装。
  CocoaPods用于获取iOS和macOS平台侧的插件代码,以响应你在Dart侧的插件使用。
  没有CocoaPods,插件将无法在iOS或macOS上工作。

CocoaPods未安装或状态无效。
在iPhone 12 Pro上启动应用失败。
解决方案

1. 重新安装Xcode命令行工具

执行以下命令彻底清理并重新安装命令行工具:

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

安装完成后,运行xcode-select -p验证路径,输出应为/Library/Developer/CommandLineTools。

2. 用rbenv管理Ruby环境(绕过系统Ruby权限问题)

  • 安装rbenv:
brew install rbenv
  • 初始化rbenv到shell:
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
source ~/.zshrc
  • 安装指定Ruby版本并设置全局:
rbenv install 2.6.10
rbenv global 2.6.10
  • 无sudo安装CocoaPods:
gem install cocoapods -v 1.11.3

3. 直接通过brew安装CocoaPods

如果上述方法仍失败,直接用brew绕过Ruby原生扩展问题:

brew install cocoapods

安装后执行pod setup同步仓库,再到Flutter项目的ios目录运行:

cd ios
pod install

4. 验证安装状态

运行pod --version确认CocoaPods版本正确,之后重启Flutter项目即可。


内容的提问来源于stack exchange,提问作者ARPIT PATEL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:28:12