Detox测试时模拟器启动失败怎么办?
我用Detox写了个简单的端到端测试,但每次运行都卡在启动模拟器这步,报错说找不到设备。明明Xcode里模拟器能正常打开,也按文档配了deviceName和os,就是跑不起来。
我的配置是这样的:
{
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/myapp.app",
"build": "xcodebuild -workspace ios/myapp.xcworkspace -scheme myapp -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"device": {
"type": "iPhone 15"
}
}
}
}
是不是设备名称写错了?还是build路径有问题?折腾半天没搞定,有谁遇到过类似情况吗?
问题在于 Xcode 模拟器的设备名称可能带版本号,比如 "iPhone 15 (17.0)" 这种格式,而且每次运行 ID 还会变。
解决方法:
第一步,先查一下你本地到底有哪些模拟器可用。在终端跑:
会列出类似这样的结果:
第二步,把查到的 ID 填到配置里:
用 id 比用 name 靠谱,因为 name 可能会变。
另外提醒一嘴,如果你是 CI 环境跑,每次构建完模拟器 ID 可能会变,最好用
xcrun simctl list devices available动态获取,或者在 CI 配置里先确保模拟器已经创建好且 ID 固定。