Xcode 14中DVTSourceControlGitXPCClient频繁崩溃问题求助
问题背景
Xcode 14.2 (14C18)每隔3-8分钟崩溃一次,崩溃日志固定显示:
Crashed Thread: Dispatch queue: DVTSourceControlGitXPCClient :: Proxy Completion Queue
涉及环境:Swift项目,目标平台覆盖iOS和macOS,使用GitHub作为源码控制,采用SPM管理依赖,已有多个同版本用户反馈类似问题。
原因分析
该崩溃属于Xcode 14.2版本的已知bug,核心是Git源码控制模块的XPC客户端在处理SPM依赖仓库的交互时,代理完成队列的任务调度出现异常,导致线程死锁或资源耗尽触发崩溃。SPM的依赖自动更新检查、Git认证交互等操作会加剧这个问题的出现频率。
解决思路
临时禁用源码控制
打开Xcode偏好设置(快捷键Cmd+,),进入Source Control标签页,取消勾选Enable Source Control。此方法可立即阻止崩溃,但需通过终端或第三方Git工具完成代码提交、拉取等操作。清理Xcode源码控制缓存
完全关闭Xcode后,删除以下目录:~/Library/Caches/com.apple.dt.Xcode/DVTSourceControl ~/Library/Application Support/com.apple.dt.Xcode/SourceControl重启Xcode后会重新初始化源码控制状态,部分场景下可修复缓存损坏导致的崩溃。
更换Xcode版本
升级到Xcode 14.3及以上版本,苹果在后续版本中修复了大量源码控制相关的稳定性问题;若无法升级,可降级到Xcode 14.1版本,该版本的Git交互模块更稳定。优化SPM依赖配置
检查SPM依赖,将频繁更新的Git仓库锁定到具体的commit哈希或tag版本,减少Xcode自动检查更新的频率;执行File > Packages > Reset Package Caches,重新拉取依赖并清理缓存。重置Git认证配置
在终端执行以下命令,修复Git与Xcode的交互权限问题:git config --global --unset credential.helper git config --global credential.helper osxkeychain
内容的提问来源于stack exchange,提问作者Vicente Garcia

