facebook / idb
idb is a flexible command line interface for automating iOS simulators and devices
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing facebook/idb in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewThe "iOS Development Bridge" or , is a command line interface for automating iOS Simulators and Devices. It has three main principles: • *Remote Automation*: is composed of a "companion" that runs on macOS and a python client that can run anywhere. This enables scenarios such as a "Device Lab" within a Data Center or fanning out shards of test executions to a large pool of iOS Simulators. • *Simple Primitives*: exposes granular commands so that sophisticated workflows can be sequenced on top of them. This means you can use from an IDE or build an automated testing scenario that isn't feasible with default tooling. All of these primitives aim to be consistent across iOS versions and between iOS Simulators and iOS Devices. All the primitives are exposed over a cli, so that it's easy to use for both humans and automation. • *Exposing missing functionality*: Xcode has a number of features that aren't available outside its user interface. leverages many of Private Frameworks that are used by Xcode, so that these features can be in GUI-less automated scenarios. is built on top the and macOS Frameworks, contained within this repository. These Frameworks can be used independently of , however is likely to provide the simplest install and the most sensible defaults for most users. We've given a talk about at F8, so that you can learn more about what is and why we built it. A recording of the talk is available here. Quick Start is made up of 2 major components, each of which needs to be installed separately. companion Each target (simulator/device) will have a companion process attached allowing to communicate remotely. The companion can be installed via brew or built from source Note: Instructions on how to install brew can be found here client A cli tool and python client is provided to interact with . It can be installed via pip: Note: The idb client requires python 3.6 or greater to be installed. Please refer to fbidb.io for detailed installation instructions and a guided tour of idb. Once installed, just run the list-targets command which will show you all the simulators installed on your system: will show you all the apps installed in a simulator: will launch an application: Head over to the main documentation for more details on what you can do with idb and the full list of commands. There are also instructions on how to make changes to including building it from source. Building from Source Prerequisites • **Xcode 14.0+** • **XcodeGen**: • **For idb_companion**: protobuf and gRPC Swift plugins Building The idb_companion binary will be at . Running Tests Regenerating Xcode Projects The Xcode project files are generated from using XcodeGen. To regenerate without building: Build Script Reference Documentation Find the full documentation for this project at fbidb.io We also have a public Discord Server that you can join Contributing We've released because it's a big part of how we scale iOS automation at Facebook. We hope that others will be able to benefit from the project where they may have needs that aren't currently serviced by the standard Xcode toolchain. Code of Conduct Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated. Contributing Guide Read our contributing guide to learn about our development process. License is MIT-licensed.