IOS调试桥
fb-idb的Python项目详细描述
IDB
“ios开发桥”或idb
,是一个命令行界面,用于自动化ios模拟器和开发设备。它有三个主要目标:
- 远程自动化。
idb
有一个在macos上运行的“伙伴”,还有一个在任何地方运行的python客户机和cli。这使得一些场景成为可能,比如数据中心内的“设备实验室”,或者将命令分散到大量的ios模拟器中。 - 简单原语。
idb
公开了粒度api,使您能够在上面构建更复杂的工作流。这意味着您可以使用ide中的idb
,或者构建一个自动化测试场景,而不仅仅是运行一组测试。所有这些原语在操作系统版本之间以及模拟器和设备之间都是一致的。cli的目的还在于便于人使用和自动化,因此它提供了简洁和自文档化的命令。 - 显示缺少的功能。xcode有许多功能在自己的ui之外是不可用的。
idb
公开了许多这些特性,以便它们可以在其他没有gui的自动化中使用。
idb
很大程度上是由这个存储库中包含的FBSimulatorControl
和FBDeviceControl
框架构建的。这些框架可以独立于idb
使用,但是idb
可能会为大多数用户提供最简单的安装和最合理的默认值。
我们在f8上讨论了idb
,这样您就可以进一步了解idb
是什么以及我们为什么构建它。一个recording of the talk is available here。
快速启动
在建 请容忍我们。快速启动步骤可能还不适合您。
idb
由两个部分组成,每个部分都需要单独安装。
idb
同伴
每个目标(模拟器/设备)都有一个附带的进程,允许idb
远程通信。
可以通过brew安装idb
伴侣,也可以通过source构建^{p>
brew tap facebook/fb
brew install idb-companion
注意:有关如何安装brew的说明,请参见here
idb
客户端
提供了一个cli工具和python客户端来与idb
交互。
它可以通过pip安装:
pip3.6 install fb-idb
注意:IDB客户端要求安装Python3.6或更高版本。
请参阅fbidb.io了解详细的安装说明和IDB导游。
安装后,只需运行list targets命令,该命令将显示系统上安装的所有模拟器:
$ idb list-targets
...
iPhone X | 569C0F94-5D53-40D2-AF8F-F4AA5BAA7D5E | Shutdown | simulator | iOS 12.2 | x86_64 | No Companion Connected
iPhone Xs | 2A1C6A5A-0C67-46FD-B3F5-3CB42FFB38B5 | Shutdown | simulator | iOS 12.2 | x86_64 | No Companion Connected
iPhone Xs Max | D3CF178F-EF61-4CD3-BB3B-F5ECAD246310 | Shutdown | simulator | iOS 12.2 | x86_64 | No Companion Connected
iPhone Xʀ | 74064851-4B98-473A-8110-225202BB86F6 | Shutdown | simulator | iOS 12.2 | x86_64 | No Companion Connected
...
list-apps
将显示模拟器中安装的所有应用程序:
$ idb list-apps --udid 74064851-4B98-473A-8110-225202BB86F6
com.apple.Maps | Maps | system | x86_64 | Not running | Not Debuggable
com.apple.MobileSMS | MobileSMS | system | x86_64 | Not running | Not Debuggable
com.apple.mobileslideshow | MobileSlideShow | system | x86_64 | Not running | Not Debuggable
com.apple.mobilesafari | MobileSafari | system | x86_64 | Not running | Not Debuggable
launch
将启动应用程序应用程序:
$ idb launch com.apple.mobilesafari
查看here了解有关IDB和完整命令列表的更多详细信息。
从源构建
idb
由两部分组成。
要构建python部分,请确保您位于repo的根目录中并运行:
pip3 install .
要构建objective-c/c++部分:
确保已安装GRPC依赖项:brew tap grpc/grpc && brew install grpc
open idb_companion.xcworkspace
这将打开一个可以构建和运行的xcode项目。
文档
有关此项目的完整文档,请访问fbidb.io
贡献
我们发布了idb
,因为这是我们如何在facebook上扩展ios自动化的一个重要部分。我们希望其他人能够从这个项目中受益,因为他们可能有目前标准xcode工具链无法满足的需求。
行为准则
Facebook采用了一套我们希望项目参与者遵守的行为准则。请read the full text这样你就可以理解哪些行为是可以容忍的,哪些行为是不能容忍的。
贡献指南
阅读我们的contributing guide了解我们的开发过程。