iOS - Perfecto Mobile 中的屏幕共享

Tej*_*udi 4 iphone-privateapi ios

我们正在探索用于移动自动化测试的各种测试套件,并遇到了这家名为 Perfecto Mobile 的公司。让我震惊的功能之一是它们能够(无需越狱)在物理 iPad 上有效地执行“远程桌面”。

因此,iPad 的屏幕在 Web 应用程序中进行镜像,它可以在 Web 应用程序上注册触摸/滑动事件并在设备上执行它们。我掌握的唯一相关技术细节是,所有这些都是使用通过 USB 电缆发送的命令来执行的。

我真的很好奇这是如何实现的以及相关私有 API 的详细信息(如果有)。

谢谢,
泰贾

Fra*_*ank 5

我不熟悉 PerfectoMobile,但我可以为您提供一些关于如何实现此目标的指导:

  • 对于镜像,一种方法是考虑使用 AirPlay,API有很好的文档记录,但不要做我们正在谈论的事情,这需要一些严格的逆向工程,但这绝对是可能的,这些人已经做到了。另一种方法是运行一个后台应用程序,该应用程序会定期拍摄主屏幕的快照,并通过套接字连接将它们发送到客户端。您可以将其作为 VNC 服务器来执行此操作,并且要将远程视图合并到 Web 应用程序中,您可以使用noVNC。就使用 USB 连接而言,在后台应用程序通过 TCP 与客户端通信的情况下,您可以转发端口。

  • 为了在设备上实际执行从远程查看器发送的触摸事件,大多数人一直在使用GraphicsServices 私有框架中的GSEvent函数组,而无需越狱设备。同样,后台应用程序将通过套接字接收诸如“点击那里”之类的指令,实例化 GSEvent 并注入它,以便它在最前面的应用程序的运行循环中得到处理。

至少,这几种可能性已经在直到 iOS 6.1 的不同 iOS 应用程序中成功实现(iOS7 是另一种动物)。您在 App Store 中找不到任何此类应用程序,因为 Apple 明确禁止在第 3 方应用程序中使用私有框架,而是人们使用企业和临时配置文件在内部部署它们。然而,在 Android 上,Play 商店中提供了VMLite 。