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

GitHub Runner执行xcodebuild报错:无法删除scheme 进程禁止保存

问题触发原因

该报错是Xcode 13.x系列版本在无交互CI环境下的典型权限问题:
xcodebuild执行测试任务前,会默认尝试清理全局缓存路径下的旧运行上下文(过期scheme配置)。本地执行时,登录用户对Xcode默认缓存路径(~/Library/Developer/下的相关目录)有完整读写权限,流程可正常运行。但GitHub Runner的无交互执行环境默认限制了进程对全局缓存路径的写入权限,xcodebuild尝试删除旧scheme时被权限拦截,就会抛出Cannot modify data because the process disallows saving错误。

修复方案

按优先级从高到低选择即可:

  • 优先方案:给xcodebuild追加参数关闭自动scheme管理逻辑,直接跳过触发报错的旧scheme清理步骤,修改后的测试命令如下:
/Applications/Xcode_13.3.1.app/Contents/Developer/usr/bin/xcodebuild test -scheme BokenEngine -destination "platform=iOS Simulator,name=iPhone 11" -enableCodeCoverage YES -derivedDataPath .DerivedData -IDEDisableSwiftPackageAutomaticSchemeManagement=YES
  • 备选方案1:执行xcodebuild前,强制指定Xcode的临时数据存储路径到工作区可写目录,避免写入全局受限路径,在测试命令前执行以下脚本:
mkdir -p .xcode-tmp
defaults write com.apple.dt.Xcode IDECustomDataStorageLocation -string "$(pwd)/.xcode-tmp"
  • 备选方案2:执行测试命令前,给Xcode全局缓存目录补全CI运行用户的读写权限:
sudo chown -R runner:staff ~/Library/Developer/Xcode
sudo chmod -R u+rw ~/Library/Developer/Xcode

如果CI环境允许升级Xcode版本,直接升级到Xcode 14及以上版本可彻底解决该问题,苹果已在新版本中修复了无交互环境下的权限判断逻辑bug。
*注意:升级Xcode版本会同步升级内置Swift版本,升级前需要确认项目代码完成对应适配。

内容的提问来源于stack exchange,提问作者Jose Celano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:15:44