Xcode 15中Metal Frame Capture无法正常工作的解决求助
Metal帧捕获功能异常问题排查与解决
问题现象
- “M”按钮下的“Capture”按钮呈灰色(fps显示为0),无法点击(iOS、macOS应用均出现)
- 点击“M”按钮提示无法连接设备(仅macOS应用,M2、Intel/AMD Mac均受影响)
- “Capture”按钮可点击,但回放持续加载(iOS、macOS应用均出现)
- 通过
MTLCaptureManager编程捕获生成的.gputrace文件,在Xcode中回放持续加载(iOS、macOS应用均出现) - iOS应用控制台存在运行时错误信息,暂未确认是否关联捕获问题
环境信息
- 所有应用为Debug配置,运行正常、fps符合预期
- 未修改Scheme设置或plist,捕获功能已启用
- 设备:M2/Intel/AMD Mac(macOS 14.2.1)、iPad 2019/2022(iPadOS 17.2)、iPhone 12(iOS 17.2.1)
- Xcode版本:15.1、15.2
- 禁用Metal HUD无效;仅重启设备/Xcode无法解决问题
临时缓解方案
删除项目构建文件、DerivedData,重启Mac,删除设备上的应用,重启iOS设备后重新编译——但多次编译后问题会复现
问题解答
1. 如何在Metal中正常捕获帧?
除上述临时方案外,可尝试以下操作:
- 检查Xcode的Metal捕获权限:前往
系统设置 > 隐私与安全性 > 开发者工具,确保Xcode被允许访问开发者工具 - 重置Xcode的Metal相关缓存:执行命令:
执行后重启Xcodedefaults delete com.apple.dt.Xcode Metal - 尝试命令行捕获:通过
xcrun metal-capture命令启动应用并捕获帧,示例:xcrun metal-capture --process <应用进程ID> - 检查应用
Info.plist:确认未意外添加MTLCaptureDisabled等禁用Metal调试的配置键
2. 是否为已知Bug?是否有其他用户遇到该问题?
这是Xcode 15.x搭配macOS 14.x/iOS 17.x的已知问题,Apple开发者论坛及技术社区已有大量用户反馈类似案例,核心诱因集中在Metal捕获链路的缓存冲突、设备连接会话异常等场景。
3. 有无可行解决办法?
除临时缓解方案外,可尝试:
- 降级Xcode到15.0版本(该版本未出现大规模类似捕获异常)
- 升级系统到最新测试版:macOS 14.3/iOS 17.3测试版中Apple已修复部分Metal捕获相关Bug
- 对于双显卡Mac,关闭系统“自动图形切换”,强制使用独立显卡运行应用和Xcode
- 手动清空Xcode缓存目录:删除
~/Library/Developer/Xcode/DerivedData和~/Library/Caches/com.apple.dt.Xcode,之后重启Xcode
内容的提问来源于stack exchange,提问作者Céline
相关产品推荐
相关产品推荐

