iOS设备的ADB等效工具是什么?

31

我在寻找一款类似于Android ADB的工具,以便调试iOS设备。我找到了,这是XCode的一种工具,能够调试移动iOS设备上的应用程序。如果您需要测试您的应用程序或其他开源应用程序,则此工具非常有用。

我需要测试iOS设备,而不仅仅是我的应用程序,因此我正在寻找类似于Android ADB的iOS设备工具。

是否有这样的工具?


3
你能否更具体地说明你想要做什么,而 Xcode 和 lldb 无法提供?它们可以用于在设备上调试应用程序,因此我不确定 adb 做了什么,而你在 lldb 和 Xcode 中没有找到。 - Rob
你想测试设备的什么?市面上有很多基准测试应用程序,可以让你比较设备之间的速度、图形性能等。谷歌一下就能找到十几个(带评论)。 - Caleb
我想知道是否可以在iOS设备上执行触摸,例如类似于adb shell用于Android设备的输入事件,如“tap”,“swipe”,“drag”,“flick”。例如,我想在任何图标上执行触摸(例如设置或主菜单的其他图标),我不感兴趣调试我的应用程序,而只是为了模拟事件以便调试设备。 - user3596455
6个回答

9
截至2021年,Facebook有一个工具可以进行设备自动化,这个项目叫做“iOS Development Bridge”,简称idb

idb是一个灵活的命令行界面,用于自动化iOS模拟器和设备。

稍微介绍一下历史,它替代了一个类似的档案项目,称为WebDriverAgent
从最初的问题开始:

我想知道是否可以在iOS设备上执行触摸操作,例如像“点击”、“滑动”、“拖动”、“轻扫”这样的输入事件,类似于对Android设备的adb shell。例如,我想在任何图标上执行触摸操作(例如设置或主菜单中的其他图标),我不感兴趣调试我的应用程序,但只是为了模拟事件以调试设备。

idb可以做到这一点。它允许与设备交互

来自文档的示例:

点击 idb ui tap X Y 在指定的坐标系中点击屏幕上的位置。可以使用--duration设置点击持续时间。

滑动 idb ui swipe X_START Y_START X_END Y_END 从指定的起始点滑动到结束点。默认情况下,这将通过在起始点按下触摸,然后每次移动10个点直到达到结束点来完成。可以使用--delta指定每个步骤的大小。


大多数命令仅适用于模拟器,而不适用于物理设备。 - stoefln

5

针对设备

仅适用于模拟器


4
您的问题是:
我想知道是否有可能在iOS设备上执行触摸,例如“轻敲”、“滑动”、“拖动”、“轻扫”等输入事件,以类似于android设备的adb shell的方式。例如,我想在任何图标上(如设置或主菜单的某个其他图标)执行一个触摸操作,而我只是想模拟一个事件来调试设备,而不是调试应用程序。
这种类型的测试是通过Instruments完成的。请参见仪表盘用户指南中的自动化UI测试部分。还可以查看WWDC 2010视频使用仪器自动化用户界面测试,其中展示了一些这个过程的交互演示。此Cocoa Controls页面也有许多其他链接。
总之,您可以使用Instruments中的UI Automation工具来自动化测试UI。请注意,我们中的一些人在iOS 7模拟器上使用此功能时遇到了问题,但在实际设备上似乎可以正常工作。

亲爱的罗布,非常感谢你详细的回答。我会查看这些链接,希望它们能够很好地解决我的任务。 - user3596455
我看过这些链接,但我注意到解决方案取决于应用程序,我想通过在应用程序上进行调试来使自己自由。我看到了libimobiledevice,这是一个能够与iOS设备通信的软件平台。因此,例如,可以独立于运行情况在设备上截屏。您是否曾经使用过这个工具或类似的工具?然而,似乎无法向设备发送输入事件,如触摸,但可以以类似于Android设备的adb logcat的方式获取设备上正在运行的活动的详细日志。 - user3596455
@user3596455 好的,我现在明白你想做什么了,但我不知道有没有办法在特定目标应用程序之外自动化UI。 - Rob
@user3596455 Rob是正确的。您无法使用UIA自动化任何不属于您自己的应用程序,也就是说,您没有源代码的任何应用程序。有一种方法可以自动化Safari应用程序甚至模拟器上的其他一些本机应用程序,但不能在真实设备上实现。 - Ricardo B.

3

要获取已连接的iOS设备列表,请使用命令xcrun instruments -s devices


2
请您能否进一步解释一下?仅仅一个简短的句子回答可能并不是很有帮助。 - Duane Lortie
2
虽然这并没有回答所问的问题,但它解决了我的问题!谢谢 - Andrew Dean
instruments deprecated. Use xcrun xctrace list devices - junho

1
如果您安装了Adobe AIR和它们的ADT(Adobe开发工具),您可以运行以下命令:
adt -devices -platform ios

-1

列出可用的iOS模拟器命令: xcrun simctl list

列出已激活/运行的iOS模拟器命令: xcrun simctl list | grep Booted


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接