如何让Xcode Cloud测试结果显示完整截图附件预览?
问题解答
目前在Xcode 14.1版本下,暂时无法实现Xcode Cloud官网展示的那种完整内嵌显示测试截图附件的效果,具体原因和可行方案如下:
1. 版本特性限制
Xcode Cloud的测试附件展示逻辑会随Xcode版本和Cloud服务端更新迭代,官网呈现的完整图片展示效果,大概率是基于更新的Xcode版本(如Xcode 14.3及以上)对应的Cloud服务特性。Xcode 14.1配套的Cloud服务尚未支持该展示形式。
- 建议尝试升级至Xcode 14.3+(需搭配对应版本的macOS,比如Ventura 13.3+),重新提交测试任务后观察附件展示是否变化。
2. 优化附件属性配置
除了已设置的lifetime = .keepAlways,可以补充配置附件的类型标识,帮助Xcode Cloud更准确识别并处理图片:
extension XCTestCase { func takeScreenshot(of app: XCUIApplication, named name: String) { let screenshot = app.windows.firstMatch.screenshot() let attachment = XCTAttachment(screenshot: screenshot) #if os(iOS) attachment.name = "Screenshot-\(name)-\(UIDevice.current.name).png" #else attachment.name = "Screenshot-\(name)-macOS.png" #endif attachment.lifetime = .keepAlways // 新增:指定统一类型标识 attachment.uniformTypeIdentifier = "public.png" add(attachment) } }
同时注意控制截图尺寸,避免因图片过大被系统自动折叠。
3. 检查测试计划配置细节
- 确认测试计划的「Options」标签页中,已开启**"Include Attachments"**选项,确保所有测试附件都被上传至Xcode Cloud。
- 验证测试计划中对应的测试任务被标记为「UI测试」类型,避免因任务类型归类错误导致附件处理逻辑异常。
4. 临时替代方案
如果暂时无法升级Xcode版本,可通过以下方式查看完整截图:
- 在Xcode Cloud测试报告中,点击附件的「快速查看」按钮查看完整图片;
- 直接下载附件到本地查看;
- 额外实现截图上传至第三方图床的逻辑,然后在测试日志中插入Markdown格式的图片链接(通过
XCTAttachment添加纯文本附件),实现内嵌展示效果(需额外开发上传逻辑)。
内容的提问来源于stack exchange,提问作者bpisano
相关产品推荐
相关产品推荐

