启动 xcuitrunner 时超时

启动 xcuitrunner 时超时

我们在 Windows 上使用 xcuitrunner 启动 iOS 设备上的 Facebook WebDriverAgent。

使用 xcuitrunner 时出现超时错误:

Machine ID: XXXXXX
Using a license for [X] which expires on 1/1/2010 5:30:00 AM

The Xcode UI Test will be resigned:
- Developer Certificate: [X]
- Provisioning Profile: [X]

Starting the Xcode UI Test

Unhandled Exception: System.TimeoutException: The test plan did not start on the mobile device within the alloted timeframe of 120 s.
  at XcuitRunner.WebDriverAgentInstaller.LaunchXcuiTest(String udid, String testBundleIdentifier, String moduleName, AppleVersion xctestVersion, Version iosVersion, CancellationToken cancellationToken)
  at XcuitRunner.WebDriverAgentInstaller.LaunchXcuiTest(String udid, String testBundlePath, CodeSignSettings settings, Dictionary`2 customEnvironment, CancellationToken cancellationToken)
  at XcuitRunner.XcuitRunner.Run(ProgramOptions options)
  at XcuitRunner.Program.<>c__DisplayClass5_1.<Main>b__2()
  at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
  at XcuitRunner.Program.Main(String[] args)

我们在多台机器上都遇到了这个问题。我们也重启了设备并进行了检查,但问题仍然存在。

我们怎样才能解决这个问题?

答案1

从您发送给我的日志来看,这似乎是一个代码签名问题。您的开发者资料中的一个证书似乎已被撤销(可能是最近)。这可以解释为什么 WebDriverAgent 无法在您的 iOS 设备上启动,以及为什么您会遇到超时(xcuitrunner 将尝试连接到从未启动的 WebDriverAgent):

May 16 14:16:13 iPhone amfid[390] <Notice>: /private/var/containers/Bundle/Application/6FEACA16-ED28-4D85-96BB-595BB7F32F0B/WebDriverAgentRunner-Runner.app/WebDriverAgentRunner-Runner not valid: 0xe8008018: The identity used to sign the executable is no longer valid.
May 16 14:16:13 iPhone kernel(AppleMobileFileIntegrity)[0] <Notice>: AMFI: code signature validation failed.

修复这个问题:

  1. 从您的开发者资料中删除所有已撤销的证书。理想情况下,只在开发者资料中保留您认为有效的证书。
  2. 去除WebDriverAgent设备上的应用程序
  3. 删除.ipaxcuitrunner 文件夹中的所有文件
  4. 重新启动 xcuitrunner

如果仍然失败,请idevicesyslog再次捕获输出并将其发送给我。

答案2

您能获取更多信息并将其发送给我吗?您可以通过 [first name].[last name]@quamotion.mobi 联系我。

  1. 打开命令提示符,然后导航到 xcuitrunner 所在的文件夹
  2. 类型ideviceinfo.exe > deviceinfo.txt
  3. 键入idevicesyslog.exe > syslog.txt 该应用程序将保持运行,直到您通过键入 CTRL+C 将其停止。请不要停止它。
  4. 打开第二个命令提示符,然后导航到 xcuitrunner 所在的文件夹
  5. 启动 xcuitrunner,然后等待错误发生
  6. 在第一个命令提示符窗口中,输入 CTRL+C 停止 idevicesyslog
  7. deviceinfo.txt发送给我一份syslog.txt

相关内容