
什么是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
网友评论