Xcode UITest选中元素时被测应用意外退出问题求助
Xcode UI测试查询特定元素时应用崩溃退出(Error Code=10001)
问题详情
测试应用某一特定页面时,执行以下代码访问按钮元素:
let button = app.buttons["Example"]
执行后被测应用意外退出,UI测试抛出报错:
testFirstOrderForNewUser(): Failed to Error Domain=com.apple.dt.xctest.ui-testing.error Code=10001 "Application com.myapp.debug is not running" UserInfo={NSLocalizedDescription=Application com.myapp.debug is not running}: Application com.myapp.debug is not running
相关补充情况:
- 问题仅出现在应用内部分特定页面和元素上
- 使用测试录制功能可正常与目标元素交互,但无法生成UI查询代码,同时Xcode会出现报错弹窗或卡顿转圈
- 环境:Xcode 14.3.1
- 已尝试向应用UIWindow添加元素排查视图层级问题,未解决
可能的排查方向与解决方案
- 检查元素Accessibility配置:用Xcode的Accessibility Inspector查看目标按钮的属性,确认
accessibilityIdentifier为"Example"且无重复,同时排查父视图是否存在Accessibility相关的异常设置,错误的Accessibility配置可能导致XCTest查询时触发应用崩溃。 - 监控应用内存状态:启动Instruments的Leaks工具,配合UI测试运行,观察查询元素前后的内存变化,排查是否存在内存泄漏、野指针等问题导致应用崩溃。
- 延迟等待元素加载:避免页面未完全渲染就执行查询,改用
waitForExistence方法等待元素出现:let button = app.buttons["Example"] XCTAssertTrue(button.waitForExistence(timeout: 5)) - 降级Xcode版本测试:Xcode 14.3.1可能存在UI测试相关的版本bug,尝试切换到Xcode 14.3或14.2版本,验证问题是否消失。
- 检查测试权限配置:确认测试目标的Info.plist中已添加页面涉及的所有必要权限描述(如日历、相册等权限),权限缺失可能导致应用交互时崩溃。
- 重置测试环境:删除模拟器上的应用数据,重启Xcode与模拟器,清除缓存类的环境异常。
内容的提问来源于stack exchange,提问作者Morkrom
相关产品推荐
相关产品推荐

