IOS调试桥

fb-idb的Python项目详细描述


IDB

idb logo

“ios开发桥”或idb,是一个命令行界面,用于自动化ios模拟器和开发设备。它有三个主要目标:

  • 远程自动化。idb有一个在macos上运行的“伙伴”,还有一个在任何地方运行的python客户机和cli。这使得一些场景成为可能,比如数据中心内的“设备实验室”,或者将命令分散到大量的ios模拟器中。
  • 简单原语。idb公开了粒度api,使您能够在上面构建更复杂的工作流。这意味着您可以使用ide中的idb,或者构建一个自动化测试场景,而不仅仅是运行一组测试。所有这些原语在操作系统版本之间以及模拟器和设备之间都是一致的。cli的目的还在于便于人使用和自动化,因此它提供了简洁和自文档化的命令。
  • 显示缺少的功能。xcode有许多功能在自己的ui之外是不可用的。idb公开了许多这些特性,以便它们可以在其他没有gui的自动化中使用。

idb很大程度上是由这个存储库中包含的FBSimulatorControlFBDeviceControl框架构建的。这些框架可以独立于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了解我们的开发过程。

许可证

^{} is MIT-licensed

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要64位jdk 1.5 for windows   eclipse运算符+对于参数类型java是未定义的。双,爪哇。双人   未下载文件扩展名为的java文件   java不支持带有POST的媒体类型   从动态创建的多个EditText读取文本时发生java错误   java无法为同一xpath单击多个按钮   如何在Java中动态格式化字符串   java Android Clear Middle活动   多线程Java内存模型volatile和x86   git在Java中通过Jgit忽略文件或文件夹   java“决策无法区分输入的备选方案1、2…”   子类的javajpa继承   java需要弄清楚如何操作mutator来弄清楚一个类,教授说,我对如何操作感到困惑   java如何使用JDBC将数据从文件复制到PostgreSQL?