在构建机器上从命令行运行 IOS 仪器的问题
Posted
技术标签:
【中文标题】在构建机器上从命令行运行 IOS 仪器的问题【英文标题】:Issue with IOS Instruments running from command line on build machine 【发布时间】:2013-04-28 18:05:29 【问题描述】:我已在我的本地 Mac 上通过命令行成功运行 IOS UI Automation Instruments。当它开始测试时,模拟器会自动弹出,然后进行测试。
但是,当我通过 SSH 连接到 构建服务器(使用 OSX 和 xcode,最终将使用 Jenkins)并尝试做同样的事情时,它无法正常工作。
构建过程很好,但是只要我运行仪器,终端就会挂在那里,什么都不做。我认为它与 iphone 模拟器 GUI 有关,但由于它是 CLI,我不知道发生了什么......
你们有什么想法吗?谢谢!!
【问题讨论】:
您是否以登录用户身份运行 Jenkins?由于 Instruments 必须启动模拟器,因此您必须以登录用户身份运行 jenkins(或您正在使用的任何 CI 工具),因此会有一个窗口管理器。 @JonathanPenn 感谢您回来。我有一个不在 OSX 中的 Jenkins 服务器,所以我需要通过 SSH 连接到 OSX 构建机器来构建它并运行工具。那么在这种情况下,我们这里还有窗口管理器吗? 【参考方案1】:.
通过 SSH 从 Jenkins 执行命令后;在大多数情况下,您会看到屏幕截图中的弹出窗口。您必须通过此屏幕才能执行测试。这篇文章解决了如何解决这个问题Stop "developer tools access needs to take control of another process for debugging to continue" alert
【讨论】:
【参考方案2】:我也遇到了同样的问题。仪器 -w "$DEVICE" 忽略了参数。 与
相同DEVICE_TARGET='iPhone 6 (8.1 Simulator)' cucumber --format json -o test-reports/cucumber-8.1-iphone.json
它忽略了 DEVICE_TARGET 参数。
通过运行 Jenkins slave 不作为 SSH slave 而是作为 通过 java web start 的 Slave 代理解决
http://i.stack.imgur.com/lNlPA.png
据我了解,此问题是由管理 sshd 并对远程用户执行范围限制的 OS X 启动代理引起的。
重要提示!从属代理应该从 OS X 桌面启动,不是通过 ssh!我已经通过 VNC 连接并在 OS X UI 上启动了从属 Java Web 代理终端。
【讨论】:
以上是关于在构建机器上从命令行运行 IOS 仪器的问题的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 5.0.1 iOS 7.0.3 仪器命令行工具出错