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

Flutter运行iOS应用执行pod install后出现Ruby编码相关报错如何解决

报错详情

System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/unicode_normalize/normalize.rb:141:in `normalize': Unicode Normalization not appropriate for ASCII-8BIT (Encoding::CompatibilityError)

报错截图

问题原因

这个错误本质是两个因素共同触发的:

  • 当前使用的是 macOS 系统自带的 Ruby 2.6 版本,该版本已经停止官方维护,存在编码适配缺陷
  • 存在非ASCII编码的内容输入,常见场景为项目路径、项目名称包含中文、emoji、其他特殊符号,或是部分依赖包的命名包含非ASCII字符,调用Ruby内置的Unicode归一化方法时和默认的ASCII-8BIT编码冲突。
修复方案

按优先级从高到低尝试:

  1. 清理非ASCII路径/名称
  • 检查Flutter项目全路径、项目文件夹名称,把所有中文、emoji、特殊符号替换为纯英文、数字、下划线的组合
  • 进入项目ios目录,删除Podfile.lock文件和Pods文件夹
  • 重新执行pod install验证是否恢复正常
  1. 替换系统自带的低版本Ruby
    如果路径无问题,通过Homebrew安装高版本Ruby替代系统版本即可解决适配问题:
  • 执行以下命令安装Homebrew(已安装可跳过):
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 安装高版本Ruby:
    brew install ruby
  • 配置Ruby环境变量:
    Intel芯片Mac执行:echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
    M系列芯片Mac执行:echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
  • 生效配置:source ~/.zshrc
  • 验证Ruby版本,确认输出高于3.0即可:ruby -v
  • 重新安装CocoaPods:gem install cocoapods
  • 回到项目ios目录重新执行pod install
  1. 临时编码修复
    如果不想替换Ruby版本,可以在执行pod命令前手动指定编码:
  • 执行export LANG=en_US.UTF-8后再执行pod install,该方式仅单次生效
  • 如需永久生效,可将export LANG=en_US.UTF-8写入shell配置文件(/.zshrc或/.bash_profile)

内容的提问来源于stack exchange,提问作者Rishab Bhushan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:09:04