xcodebuild解析包依赖时报com.apple.fonts连接失效问题求助
问题根因
该报错是macOS Monterey 12.0.1搭配Xcode 13.1在无GUI的CI运行环境下的已知系统bug:xcodebuild执行时依赖的fontd字体守护进程没有被系统正确拉起,导致服务连接异常,后续CodeSign签名环节因为依赖的系统组件状态异常直接失败。
可行解决方案
方案1:快速临时规避(直接修改Fastlane配置即可生效)
- 在
before_all步骤最开头加入手动拉起fontd的命令,提前触发字体服务启动,避免xcodebuild调用时服务未就绪:
before_all do # 新增两行 `launchctl start com.apple.fontd` `sudo killall -9 fontd 2>/dev/null` Dotenv.load ".env.ios" Dotenv.overload '.env.secret' end
- 如果你的项目没有使用Swift Package Manager管理依赖,直接在
build_ios_app调用中添加参数关闭自动SPM依赖解析,从源头跳过报错触发的步骤:
lane :build do sync_signing build_ios_app( disable_package_automatic_updates: true, retry_on_failure: 2 # 偶发错误自动重试2次,提升成功率 ) end
方案2:永久修复
升级系统和开发工具版本即可彻底解决该bug:
- 将macOS升级到12.3及以上版本,苹果在该版本修复了无GUI会话下fontd守护进程无法自动拉起的问题
- 将Xcode升级到13.4.1,该版本是Xcode13系列的稳定版本,和Unity 2020.3.19f1完全适配
方案3:CI环境适配
如果无法升级系统,调整GitLab Runner的启动方式:不要以headless服务模式启动Runner,改为登录Mac用户后在GUI会话中启动Runner,确保系统用户级守护进程正常加载。
内容的提问来源于stack exchange,提问作者Taner Selim
相关产品推荐
相关产品推荐

