【问题标题】:Is there a way to get programmatically UI hierarchy for 3rd party application on iOS?有没有办法以编程方式为 iOS 上的 3rd 方应用程序获取 UI 层次结构?
【发布时间】:2013-11-05 23:46:10
【问题描述】:

我正在寻找一种以编程方式获取 3rd 方应用程序 UI 层次结构的方法。

几个约束:

  • 我正在寻找一种方法来获取 3rd 方应用程序的 UI(因此我不能在其中包含任何库或更改代码
  • 它应该可以在真正的 iOS 设备上运行(而不是在模拟器上)
  • 它应该适用于未越狱的设备。
  • 它应该适用于原生应用程序

我都可以:

  • 一个桌面工具,可以访问 iOS 并获取有关应用层次结构的信息
  • 一个 iOS 应用,可以在后台获取第 3 方应用的 UI 层次结构
  • 我可以使用私有 API(它不会提交到 AppStore)

欢迎任何想法(即使它们不是完整的解决方案)。

【问题讨论】:

  • 有人将 X11 移植到应用程序吗?
  • @QED:它与问题有什么关系?

标签: ios ui-automation iphone-privateapi


【解决方案1】:

SparkInspector http://www.sparkinspector.com 类似于 Reveal,但我不确定它是否能够在真实设备上工作。

【讨论】:

  • 这需要修改应用程序。您必须将他们的框架添加到您的项目中。因此,它不适用于 3rd 方应用。
【解决方案2】:

【讨论】:

  • DCIntrospect 和 Reveal 都需要向您的应用程序添加一个库。因此,它不适用于 3rd 方应用。
【解决方案3】:

您可以使用 MobileSubstrate 将 Reveal 动态库注入到第三方应用程序中。这只能通过越狱设备执行。描述该过程的博客文章: http://www.zdziarski.com/blog/?p=2361

【讨论】:

  • 我在问题中写的一个约束是“它应该适用于非越狱设备。”
  • 是的,是的,你做到了。抱歉,我被这里的其他答案绕开了,并没有阅读您的所有要点。但是看看你的点,如果没有越狱/注入自定义代码,你将无法实现这一点。想象一下,如果我可以远程检查某人的银行应用程序的“UI”,标准安全模型会阻止这种情况,而不管私有 API 是什么
  • 也许你是对的。但是,我想可能存在一些可以执行此操作的桌面实用程序(考虑到该设备无论如何都需要在完成任何其他操作之前信任桌面)。
  • 还有一件事。 iOS 有一些私有 API,这些 API 肯定与他们自己的安全模型不兼容。因此,有可能存在允许读取 3rd 方层次结构的 API。
猜你喜欢
  • 1970-01-01
  • 2011-07-03
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 2018-10-17
  • 2021-08-28
  • 1970-01-01
相关资源
最近更新 更多