Facebook - idb初识

image.png

什么是IDB

iOS Debug Bridge - iOS调试桥、安卓有一个很出名ADB(安卓调试桥)它可以很方便的利用PC对移动设备的连接调试、包括获取设备详情、安装|卸载apk、重启、监控设备信息、同时给可以进行app开启、触发点击、滑动、放大等手势事件、它可以用来做app的自动化测试和手机群控!

由于iOS系统的封闭性、一直没有像ADB这么强大、这么实用的工具、好在Facebook出了这个IDB工具、让我们iOS设备可以像安卓那样灵活的调试控制!

虽然libimobiledevice这个工具也可以进行iOS设备的连接启动、软件安装|卸载、监控等但是它不如Facebook的idb功能丰富与便利!

安装idb

1.idb-companio安装

建议brew方式安装

brew tap Facebook/fb
brew install idb-companion

idb客户端安装

建议python3.6以上

pip3 install fb-idb

以上两步安装完毕之后就可以使用idb了!

idb使用

idb —help

可以查看该工具的所有功能

idb常用指令

查看当前pc上的所有移动设备包括模拟器信息

idb list-targets

启动一台设备

idb boot UDID

打开谋app

idb launch com.apple.Maps

点击屏幕

idb ui button tap x y

很多指令可以根据自己的需要来配套随用!

idb_companion

这idb_companion是一个gRPC在 macOS 上运行的 Objective-C++ 服务器。它与用于自动化模拟器和设备的本机 API 对话。它链接FBSimulatorControl和FBDeviceControl框架,它们是整个idb项目的一部分。

当它idb_companion充当gRPC服务器时,它会为单个iOS 目标(设备或模拟器)执行此操作。

此外,idb_companion还有一些命令是在 python CLI 中故意不可用的,这些操作与 iOS 设备管理或模拟器生命周期的操作有关。


也就是说它可以通过host:port方式远程控制设备!这个很强大!

idb用途

  • 自动化测试
  • iOS手机群控
  • 其他我暂时想不到还可以用来干嘛…..

个人感觉用它来做自动化测试的话不是很方便、自动化测试利用Appium的WDA、结合其封装的python客户端可以更高效的编写自动化测试流程、因为它提供非常多的元素查找方式、tap、swipe、scroll等事件很方便很好用!

**备注:idb ui 指令只能针对模拟器,真机由于ios限制是无法使用的!!!需要结合fbsimctl才行
issue上作者有回应:
https://github.com/facebook/idb/issues/551
https://github.com/facebook/idb/issues/566
**

idb list-targets

//获取设备信息
idb describe --udid xxxx

//启动未开启的模拟器(真机无效)
Idb boot xxxxxx

idb list-apps --udid xxxxxxxx

idb launch --udid xxxxxxxxx com.apple.Maps 
Idb terminate  --udid xxxxxxxx com.apple.Maps 

idb screenshot --udid xxxxxxx /Users/mac/Desktop/autoTest/aa.png
idb uninstall  --udid xxxxxxxxx  com.monkey.test.SDKTest

你可能感兴趣的:(Facebook - idb初识)