【问题标题】:ADB equivalent for iOS deviceiOS 设备的 ADB 等效项
【发布时间】:2014-06-19 06:12:11
【问题描述】:

我正在寻找像 Android ADB 这样的工具来调试 iOS 设备。我找到了 iOS 工具,这是一个 XCode 工具,可以在移动 iOS 设备上调试应用程序。如果您必须测试您的应用程序或其他一些开源应用程序,此工具会很有帮助。

我需要测试 iOS 设备,而不是我的应用程序,所以我一直在寻找适用于 iOS 设备的 Android ADB 之类的东西。

有类似的吗?

【问题讨论】:

  • 您能否更具体地说明 Xcode 和 lldb 未提供的功能?这些可用于调试设备上的应用程序,所以我不确定adb 做了哪些您在lldb 和Xcode 中找不到的功能。
  • 您想对该设备进行哪些测试?有很多基准应用程序可以让您比较设备之间的速度、图形性能等。 Google 一下子就找到了十几个(有评论)。
  • 我想知道是否可以在iOS设备上执行触摸,例如像adb shell一样的“tap”,“swipe”,“drag”,“flick”等输入事件适用于安卓设备。例如,我想对任何图标(例如设置或主菜单的其他图标)执行触摸操作,而我对调试我的应用程序不感兴趣,而只是模拟一个事件以调试设备。

标签: ios xcode debugging adb instruments


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    截至 2021 年,Facebook 有一个工具可以实现这种设备自动化。

    该项目名为“iOS Development Bridge”或idb

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

    对于一些历史,它是一个名为 WebDriverAgent 的类似存档项目的替代品。

    来自原始问题:

    我想知道是否可以在 iOS 上执行触摸 设备,例如“tap”、“swipe”、“drag”、“flick”等输入事件 安卓设备的类似 adb shell 方式。例如,我会 喜欢在任何图标上执行触摸(例如设置或其他一些 主菜单的图标),我对调试我的应用程序不感兴趣,但是 仅模拟事件以调试设备。

    idb 可以做到这一点。它允许使用设备interact

    Examples from the docs:

    点击 idb ui tap X Y 点击屏幕上指定的位置 点坐标系。可以使用 --duration

    设置点击持续时间

    滑动 idb ui swipe X_START Y_START X_END Y_END 从滑动 指定起点到终点。默认情况下,这将由 在起点触地,然后一次移动 10 个点 直到到达终点。可以指定每一步的大小 使用--delta。

    【讨论】:

      【解决方案3】:

      如果您碰巧安装了带有 ADT(Adobe Developer Tool)的 Adob​​e AIR,您可以运行:

      adt -devices -platform ios
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 您能进一步解释一下吗?一个句子的答案可能不会很有帮助。
        • 虽然这不能回答问题,但它解决了我的问题!谢谢
        • instruments 已弃用。使用xcrun xctrace list devices
        【解决方案5】:

        你问:

        我想知道是否可以在 iOS 设备上执行触摸操作,例如类似安卓设备的 adb shell 的输入事件,如“tap”、“swipe”、“drag”、“flick”。例如,我想对任何图标(例如设置或主菜单的其他图标)执行触摸操作,而我对调试我的应用程序不感兴趣,而只是模拟一个事件以调试设备。

        这种测试是通过 Instruments 完成的。请参阅 Instruments 用户指南的 Automated UI Testing 部分。 另请参阅 WWDC 2010 视频 Automating User Interface Testing with Instruments,其中显示了此过程的一些交互式演示。这个Cocoa Controls page 也有很多其他链接。

        最重要的是,您可以使用 Instruments 中的 UI 自动化工具来自动化您的 UI 测试。请注意,我们中的一些人在 iOS 7 中在模拟器上使用它时遇到了问题,但它似乎在物理设备上运行良好。

        【讨论】:

        • 亲爱的 Rob,非常感谢您的详细回答。我会看到这些链接,我希望它可以很好地完成我的任务。
        • 我已经看到了这些链接,但我注意到它的解决方案取决于应用程序,我想通过调试应用程序来释放我。我见过 libimobiledevice,一个能够与 iOS 设备通信的软件平台。因此,例如,可以独立于运行在设备上截取屏幕截图。您是否曾经使用过此工具或类似工具?但是,似乎无法将输入事件发送到设备,例如触摸,但可以为设备上运行的活动提供详细的日志,其方式类似于 android 设备的 adb logcat。
        • @user3596455 好的,我想我现在明白你想要做什么了,但我知道没有办法在特定目标应用程序之外自动化 UI。
        • @user3596455 Rob 是正确的。您不能使用 UIA 来自动化任何不属于您自己的应用程序。意味着您没有源代码的任何应用程序。有一种方法可以在模拟器上自动化 Safari 应用程序甚至其他一些本机应用程序,而不是在真实设备上。
        猜你喜欢
        • 2022-06-19
        • 1970-01-01
        • 2015-01-15
        • 1970-01-01
        • 2020-06-09
        • 2013-12-16
        • 1970-01-01
        • 2020-05-25
        • 2020-08-21
        相关资源
        最近更新 更多