iOS - Perfecto Mobile 中的屏幕共享

标签 ios iphone-privateapi

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

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

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

谢谢,
泰迦

最佳答案

我不熟悉 PerfectoMobile,但我可以就如何实现这一点向您提供一些建议:

  • 对于镜像,一种方法是考虑使用 AirPlay,APIs are pretty well documented ,但不要做我们正在谈论的事情,这需要一些严肃的逆向工程,但这绝对是可能的,these guys have done it .一种不同的方法是运行一个后台应用程序,该应用程序会定期拍摄主屏幕的快照,并通过套接字连接将它们发送到客户端。您可以将其用作 VNC 服务器,并将远程 View 合并到 Web 应用程序中,您可以使用 noVNC .至于使用 USB 连接,在后台应用程序通过 TCP 与客户端通信的情况下,您可以转发端口。

  • 要在设备上实际执行从您的远程查看器发送的触摸事件,大多数人一直在使用 GSEvent GraphicsServices 私有(private)框架中的一组功能,无需越狱设备。同样,后台应用程序会通过套接字接收一条指令,例如“点击那里”,实例化 GSEvent,然后注入(inject)它,以便它在最前端应用程序的运行循环中得到处理。

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

关于iOS - Perfecto Mobile 中的屏幕共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279676/

相关文章:

ios - Parse.com 对 iOS 应用程序进行压力测试

ios - IBInspectable 属性未显示在 Xcode 8.3.3 中

iOS otool 检测私有(private) api

ios - Xamarin iOS 私有(private) API 使用

ios - 我们可以在应用程序中使用 Touch ID 吗?

ios - 尝试呈现其 View 不在窗口层次结构中的 vc

objective-c - 来自Twitter TWRequest处理程序的泄漏

objective-c - 如何在物镜c中存储手指运动的路径?

ios - 如何使用私有(private)框架从 iPhone 应用程序访问 Safari 历史记录

ios - 在不遵守 iPhone 铃声/静音开关的情况下在后台播放声音