GitShow/facebook/idb
facebook

idb

idb is a flexible command line interface for automating iOS simulators and devices

by facebook
Star on GitHubForkWebsite

Swift

5.3k stars501 forks255 contributorsActive · 30m agoSince 2015v1.1.8MIT

Meet the team

See all 255 on GitHub →
lawrencelomax
lawrencelomax5.1k contributions
xgerrit
xgerrit314 contributions
c-ryan747
c-ryan747162 contributions
jbardini
jbardini140 contributions
zeyadsalloum
zeyadsalloum128 contributions
thegreatwallfb
thegreatwallfb52 contributions
plu
plu47 contributions
ajbalik
ajbalik29 contributions

Languages

View on GitHub →
Swift63.5%
Objective-C23.8%
Python9.5%
MDX2.4%
Shell0.5%
JavaScript0.2%
Other0.1%

Commit activity

Last 12 weeks · 1218 commits

Full graph →

Community health

6 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct✓Issue Template✓PR Template

Recent PRs & issues

Active · Last activity 30m ago
See all on GitHub →
erneestoc
Fix single-AsyncIterator crash in multi-frame gRPC request handlersOpenPR

Summary is backed by , which fatal-errors if more than one is ever created from it: The helper () reads via , and every call constructs a fresh iterator; a loop makes one too. Any handler that combines two such reads on the same request stream aborts the whole companion on the second read. Affected RPC handlers (directly, or via the shared ): Fix Introduce a shared () that makes one iterator per RPC and exposes / against it. Each multi-frame handler wraps its once and routes every read through the wrapper; handlers that delegate to a helper (, , , ) thread the wrapper into the helper, and now takes the wrapper as well. The trailing loops become on the same iterator. The extension is kept for the many genuine single-read handlers, now with a doc-comment warning about the single-shot hazard. Notes Reproduced with grpc-swift 1.23.1 / current SwiftNIO. The trap is inherent to grpc-swift's single-iterator contract, so this reproduces wherever a recent grpc-swift/NIO is used; please confirm against the internal pin. Verified the companion builds (Xcode 26.2 / Swift 6.2) and that now records a valid MP4 instead of aborting. No behavior change for the single-read handlers (, , -single-frame paths, etc.).

erneestoc · 1d ago
onevcat
Indigo HID transport constructs the HID client before SimulatorKit is loaded — clientClassUnavailable for library consumersOpenIssue

Summary evaluates its initializer arguments in declaration order: looks up with , but the thing that actually loads SimulatorKit into the process — inside — runs after it. Any process that has not already loaded SimulatorKit by other means throws on the entire Indigo path. This includes the default transport selection: on a simulator where is not active, resolves to , so a plain fails. Why idb_companion does not hit this calls before , so inside the companion SimulatorKit is always resident before the client lookup runs. The bug only surfaces for consumers that link directly and follow the documented HID entry point. Reproduction main @ c51004c9, macOS 26, Xcode 27.0 beta 4 ( pointing at it), CoreSimulator 1169.1, booted iOS 27.0 simulator, Device Hub closed (no , so the indigo path is selected): With the log confirms only CoreSimulator was ever loaded: Forcing works fine in the same process (no SimulatorKit needed), which also confirms the rest of the stack is healthy. Suggested fix Load the Xcode frameworks (or at least SimulatorKit) at the top of before constructing , e.g.: or reorder so is constructed first. Consumers can work around it today by pre-loading themselves before creating an .

onevcat · 1d ago
flyqie
Are there any plans to release a new version?OpenIssue

Hello everyone, the current main branch code is quite different from the latest version released so far (better arm64 and new system version support). Are there any plans to release a new version? Any information would be greatly appreciated, thank you all.

flyqie · 5d ago

Recent fixes

View closed PRs →
inju2403
Load SimulatorKit before the Indigo HID client lookup to avoid clientClassUnavailableMergedPR

Fixes #941 Motivation As reported in #941, builds its two failable arguments in declaration order, which Swift evaluates left-to-right: — which looks up the runtime-only SimulatorKit class with — is evaluated before the sibling , the only thing on this path that loads SimulatorKit (via ). So the lookup runs before SimulatorKit is resident, and any process that hasn't already loaded it fails the entire Indigo path with . doesn't hit this because pre-loads before connecting. It only surfaces for consumers that link directly and follow the documented HID entry point — , which on a simulator without an active selects the transport, so a plain fails. The sibling already loads SimulatorKit for its own needs; is the one class lookup on this path that relies on someone else having loaded it first. Test Plan The fix loads SimulatorKit at the top of , before the lookup, so the type that needs the class is the one that guarantees the framework is resident — mirroring how the sibling already loads the framework it needs. The loader is /-guarded, so it is a no-op wherever SimulatorKit is already loaded (all companion HID flows), leaving existing behavior unchanged. The fixes suggested in #941 — loading in , or reordering the two arguments — are both sound and resolve the ordering directly; I went with loading inside the client's own initializer so that correctness stays independent of the factory's argument-evaluation order and lives next to the code that depends on it. The framework builds. The mechanism is confirmed by a standalone probe: returns nil before SimulatorKit is loaded (the exact condition that throws ) and resolves the class once it is -ed. The full end-to-end failure needs a direct library consumer on a booted simulator with off, so it isn't covered by a unit test here; the fix is verified by inspection, by that probe, by the reproduction in #941, and by parity with the already-working companion preload. Related PRs None.

inju2403 · 5d ago
Structured data for AI agents

Repository: facebook/idb. Description: idb is a flexible command line interface for automating iOS simulators and devices Stars: 5294, Forks: 501. Primary language: Swift. Languages: Swift (63.5%), Objective-C (23.8%), Python (9.5%), MDX (2.4%), Shell (0.5%). License: MIT. Homepage: https://fbidb.io/ Latest release: v1.1.8 (4y ago). Open PRs: 10, open issues: 172. Last activity: 30m ago. Community health: 87%. Top contributors: lawrencelomax, xgerrit, c-ryan747, jbardini, zeyadsalloum, thegreatwallfb, plu, ajbalik, dependabot[bot], fgasperij and others.

·@ofershap

Replace github.com with gitshow.dev