applesimutils --list 在 MacOS Mojave 和 Xcode 11.3 更新后返回空列表 []
Posted
技术标签:
【中文标题】applesimutils --list 在 MacOS Mojave 和 Xcode 11.3 更新后返回空列表 []【英文标题】:applesimutils --list returns empty list [] after MacOS Mojave and Xcode 11.3 update 【发布时间】:2020-04-25 02:26:25 【问题描述】:描述错误
在将我的 MacOS 从 High Sierra 升级到 Mojave 并将 Xcode 从 10.x 升级到 11.3 后,我不再能够运行 Detox 测试。它在下面给出了这个关于没有 ios 模拟器的错误。
**DetoxRuntimeError:无法通过 UDID =“7C50BE35-0CDE-413A-A08D-784E98C61010”和类型 =“iPhone 11 Pro”找到设备
HINT: Run 'applesimutils --list' to list your supported devices. It is advised only to specify a device type, e.g., "iPhone Xʀ" and avoid explicit search by OS version.
at SimulatorDriver._queryDevices (../node_modules/detox/src/devices/drivers/SimulatorDriver.js:224:13)**
所以我运行了 applesimutils --list 命令并收到了如下所示的空列表。 [
]
但如果我运行 xcrun simctl list devices,我会得到与 iOS 13.3 相关的设备列表
复制
[Yes] 我已经在最新的 Detox 版本中测试过这个问题,它仍然可以重现提供重现问题所需的步骤。如果您看到回归,请尝试提供问题未重现的最后一个已知版本。
-
将 MacOS 从 High Sierra 升级到 Mojave,将 Xcode 从 10.x 升级到 11.3(最新)
运行“排毒文本”
收到此错误
DetoxRuntimeError:无法通过 UDID =“7C50BE35-0CDE-413A-A08D-784E98C61010”和类型 =“iPhone 11 Pro”找到设备
提示:运行“applesimutils --list”以列出您支持的设备。建议仅指定设备类型,例如“iPhone Xʀ”,并避免按操作系统版本进行显式搜索。
at SimulatorDriver._queryDevices (../node_modules/detox/src/devices/drivers/SimulatorDriver.js:224:13)
运行 applesimutils --list 命令。收到一个空列表 [ ]
但如果我运行 xcrun simctl list devices,我会得到与 iOS 13.3 相关的设备列表。我什至更改了我的 package.json 以反映下面的最新迁移指南链接,并包含了设备对象 - https://github.com/wix/Detox/blob/master/docs/Guide.Migration.md
这就是我的 package.json 的样子
"detox":
"configurations":
"ios.sim.debug":
"type": "ios.simulator",
"binaryPath": "build/native/QuickSightiOS-2.0.2096.d.d.app",
"build": "xcodebuild -project ios/quicksight-react-native-mobile-tests.xcodeproj -scheme quicksight-react-native-mobile-tests -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"device":
"type": "iPhone 11 Pro",
"id": "7C50BE35-0CDE-413A-A08D-784E98C61010"
,
"test-runner": "jest"
,`
-
我去了这个网站https://github.com/wix/AppleSimulatorUtils 并再次重新运行了applesimutils 命令..
brew 水龙头 wix/brew 酿造安装applesimutils
运行上面的第二条命令后,我得到了这个错误
**4c32759b84a9:QuicksightReactNativeMobileTests kondurc$ brew install applesimutils 正在更新自制... 错误:applesimutils:/usr/local/Homebrew/Library/Taps/wix/homebrew-brew/applesimutils.rb:4:语法错误,意外
/usr/local/Homebrew/Library/Taps/wix/homebrew-brew/applesimutils.rb:18:语法错误,意外 ===,预期结束
^~~ /usr/local/Homebrew/Library/Taps/wix/homebrew-brew/applesimutils.rb:24:语法错误,意外>>,期待结束
排毒仪器 1.9.9... ^~ /usr/local/Homebrew/Library/Taps/wix/homebrew-brew/applesimutils.rb:24:数字文字后的意外小数部分 排毒仪器 1.9.9876**
预期行为 我希望 applesimutils --list 命令能够显示支持的模拟器列表,最终我的排毒测试能够成功运行,而不是抱怨找不到设备类型。
环境(请填写以下信息): - 排毒:14.9.2 - 反应原生:0.60.4 - 节点:v10.15.1 - 设备:iPhone 11 Pro(模拟器) - Xcode:11.3 - iOS:13.3 - macOS:莫哈韦沙漠
设备和详细排毒日志 4c32759b84a9:QuicksightReactNativeMobileTests kondurc$ 排毒测试 --loglevel 跟踪 detox[63893] INFO: [test.js] configuration="ios.sim.debug" loglevel="trace" reportSpecs=true DETOX_START_TIMESTAMP=1578349653101 node_modules/.bin/jest --config e2e/config.json '--testNamePattern= ^((?!:android:).)*$' --maxWorkers 1 "e2e" 排毒[63894] 信息:[DetoxServer.js] 服务器在 localhost:50258 上侦听... 排毒 [63894] 调试:[AsyncWebSocket.js/WEBSOCKET_OPEN] 打开 Web 套接字到:ws://localhost:50258 detox[63894] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] "type":"login","params":"sessionId":"6d94b773-5329-fab7-89ae-add64e14cdec","role":"tester" ,"messageId":0 排毒[63894] 调试:[DetoxServer.js/LOGIN] 角色=测试者,sessionId=6d94b773-5329-fab7-89ae-add64e14cdec detox[63894] 调试:[DetoxServer.js/LOGIN_SUCCESS] 角色=测试者,sessionId=6d94b773-5329-fab7-89ae-add64e14cdec detox[63894] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] "type":"loginSuccess","params":"sessionId":"6d94b773-5329-fab7-89ae-add64e14cdec","role":"tester" ,"messageId":0
detox[63894] DEBUG: [exec.js/EXEC_CMD, #0] applesimutils --list --byId 7C50BE35-0CDE-413A-A08D-784E98C61010 --byType "iPhone 11 Pro" 排毒[63894] 跟踪:[exec.js/EXEC_SUCCESS,#0] [
]
detox[63894] 错误:[DetoxExportWrapper.js/DETOX_INIT_ERROR]
DetoxRuntimeError:无法通过 UDID =“7C50BE35-0CDE-413A-A08D-784E98C61010”和类型 =“iPhone 11 Pro”找到设备
提示:运行“applesimutils --list”以列出您支持的设备。建议仅指定设备类型,例如“iPhone Xʀ”,并避免按操作系统版本进行显式搜索。 在 SimulatorDriver._queryDevices (/Users/kondurc/Desktop/quicksightmobiletests/src/QuicksightReactNativeMobileTests/node_modules/detox/src/devices/drivers/SimulatorDriver.js:224:13) 在 process._tickCallback (internal/process/next_tick.js:68:7) 排毒 [63894] 跟踪:[ArtifactsManager.js/LIFECYCLE] artifactsManager.onAfterAll() detox[63894] 调试:[DetoxServer.js/DISCONNECT] 角色=测试者,sessionId=6d94b773-5329-fab7-89ae-add64e14cdec 排毒 [63894] 调试:[DetoxServer.js/WS_CLOSE] 排毒服务器连接正常终止 失败 e2e/specs/signinWithADUserTests.spec.js 使用 Enterprise AD 用户登录 - 读者角色 ✕ 应该验证应用程序已启动并且登录按钮可用(4 毫秒) ✕ 应使用来自读者组的有效 AD 用户登录(15 毫秒) ✕ 应该进入设置视图页面(2ms) ✕ 应该退出(1 毫秒)
● 使用 Enterprise AD 用户登录 - 读者角色 › 应验证应用程序已启动且登录按钮可用
DetoxRuntimeError: Failed to find a device by UDID = "7C50BE35-0CDE-413A-A08D-784E98C61010" and by type = "iPhone 11 Pro"
HINT: Run 'applesimutils --list' to list your supported devices. It is advised only to specify a device type, e.g., "iPhone Xʀ" and avoid explicit search by OS version.
at SimulatorDriver._queryDevices (../node_modules/detox/src/devices/drivers/SimulatorDriver.js:224:13)
● 使用 Enterprise AD 用户登录 - 读者角色 › 应验证应用程序已启动且登录按钮可用
ReferenceError: device is not defined
7 | describe('Sign In using Enterprise AD User - Reader role', () =>
8 | beforeEach(async () =>
> 9 | await device.launchApp();
| ^
10 | );
11 |
12 | it('Should verify app is launched and Sign In button is available', async () =>
at device (specs/signinWithADUserTests.spec.js:9:11)
at tryCatch (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:97:21)
at tryCatch (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:40)
at invoke (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:135:20)
at ../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:170:11
at callInvokeWithMethodAndArg (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:169:16)
at AsyncIterator.enqueue (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:192:13)
at AsyncIterator.prototype.(anonymous function) [as next] (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:97:21)
at Object.<anonymous>.exports.async (../node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:216:14)
at Object._callee (specs/signinWithADUserTests.spec.js:8:14)
【问题讨论】:
阅读 applesimutils 的自述文件。 【参考方案1】:如自述文件中所述:
https://github.com/wix/AppleSimulatorUtils#troubleshooting
如果 Homebrew 抱怨 wix/brew tap 有冲突,请运行
brew untap wix/brew && brew tap wix/brew
并再次尝试安装
然后正常升级applesimutils。
【讨论】:
以上是关于applesimutils --list 在 MacOS Mojave 和 Xcode 11.3 更新后返回空列表 []的主要内容,如果未能解决你的问题,请参考以下文章