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 &amp;&amp; brew tap wix/brew 并再次尝试安装

然后正常升级applesimutils。

【讨论】:

以上是关于applesimutils --list 在 MacOS Mojave 和 Xcode 11.3 更新后返回空列表 []的主要内容,如果未能解决你的问题,请参考以下文章

math.ceil()

R语言可视化:MA散点图绘制

List集合分组实现教程

表格和热图[关闭]

list.c

在 React Native Section List 中过滤数据