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

Unity集成Firebase构建iOS时Cocoapods安装失败,LANG配置重置问题

解决Unity iOS构建时Cocoapods UTF-8编码报错方案

问题根因

你之前执行的export LANG=en_US.UTF-8属于临时环境变量配置,仅对当前打开的终端窗口生效。Unity触发iOS构建时会启动独立的Shell会话,不会继承临时配置,且重启终端后配置也会自动重置,因此修改不生效。

可行解决方案

方案1:全局配置Shell环境变量(永久生效,推荐)

该方案会对所有Shell会话生效,后续所有终端操作、Unity构建都会复用该配置:

  • 先确认当前使用的Shell类型,终端执行命令:echo $SHELL
  • 若输出为/bin/zsh(MacOS Catalina及之后版本默认Shell):
    1. 终端执行touch ~/.zshrc确保配置文件存在,再执行open ~/.zshrc打开文件
    2. 在文件末尾添加如下两行配置:
    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8
    
    1. 保存关闭文件后,终端执行source ~/.zshrc使配置立即生效
  • 若输出为/bin/bash:
    1. 终端执行touch ~/.bash_profile确保配置文件存在,再执行open ~/.bash_profile打开文件
    2. 同样在末尾添加上述两行export配置
    3. 保存关闭文件后,终端执行source ~/.bash_profile使配置立即生效

配置完成后关闭终端重新打开,执行locale命令验证,确认LANG和LC_ALL均显示为en_US.UTF-8后,重启Unity执行构建即可。

方案2:修改Unity构建脚本强制指定编码(无需修改系统配置)

如果你使用自定义C#构建脚本触发iOS构建,可以在调用Cocoapods相关逻辑前,通过代码设置进程内环境变量:

using System;

// 在构建iOS包的逻辑前添加如下代码
Environment.SetEnvironmentVariable("LANG", "en_US.UTF-8");
Environment.SetEnvironmentVariable("LC_ALL", "en_US.UTF-8");

该配置仅在当前Unity构建进程内生效,不会修改系统全局配置。

方案3:单次构建临时生效

如果只是临时需要构建,不想修改任何配置,可以通过终端带环境变量启动Unity:

  1. 打开终端执行:export LANG=en_US.UTF-8 && export LC_ALL=en_US.UTF-8
  2. 同一会话内执行命令启动Unity,替换为你的Unity安装路径和项目路径即可:
    /Applications/Unity/Hub/Editor/你的Unity版本号/Unity.app/Contents/MacOS/Unity -projectPath /你的项目本地路径
    通过该方式启动的Unity会继承当前终端的环境变量,构建时不会触发编码报错。

注意:建议同时配置LANG和LC_ALL两个变量,仅配置LANG可能因其他区域设置项为空触发Cocoapods的衍生报错。

内容的提问来源于stack exchange,提问作者Vincent Lauwen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:45:04