Repository navigation
fix(ios): send input through dtuhidd on Xcode 27 simulators - #91
Merged
Merged
Conversation
CoreSimulator 1155.4 (Xcode 27) routes guest HID through dtuhidd. The guest accepts legacy Indigo messages from SimulatorKit's HID client and drops them, so taps, Home, hardware buttons and keys reported success and did nothing. When the loaded CoreSimulator is 1155.4 or later, touches (single, edge and two-finger), Home, the App Switcher, hardware buttons and keyboard usages go to dtuhidd's digitizer service as XPC dictionaries instead. Older toolchains keep the Indigo path unchanged. Fixes #90
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
simdeckciproxy | 3327f00 | Commit Preview URL Branch Preview URL |
Nov 11 2026, 04:36 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #90.
On Xcode 27 simulators, taps, Home, hardware buttons and keys returned
okand did nothing.From CoreSimulator 1155.4 (Xcode 27), the guest routes HID through a new daemon,
dtuhidd. Legacy Indigo messages from SimulatorKit's HID client are still accepted, and the guest then drops them. SosendWithMessage:succeeding proved nothing.What changes
When the loaded CoreSimulator is 1155.4 or newer, the display bridge sends input to
dtuhidd's digitizer service (com.apple.coredevice.feature.remote.hid.digitizer) as XPC dictionaries.DFDTUHIDClient:-[SimDevice lookup:error:],xpc_endpoint_create_mach_port_4sim, andxpc_connection_enable_sim2host_4sim.dtuhiddcan abort during boot while its service lookup keeps succeeding.sendKeyCodewith modifiers.dtuhiddequivalent: Apple Pay and the software-keyboard toggle are legacy button codes, so they return a clear error instead of a silent no-op.AGENTS.mddocuments the path.The wire format follows idb's DTUHID transport (facebook/idb
FBSimulatorControl/HID), which documents the message shapes and the 1155.4 cutover.Testing
Setup: macOS 26.6, Xcode 27.1 (CoreSimulator from Xcode 27), iPhone 17 Pro simulator on iOS 27.0. This was built on top of #87, which is still needed on Xcode 27 for the display to load at all.
simdeck homeok, no effectsimdeck tap --label toolboxok, no effectok, no effectsimdeck key-combo --modifiers cmd --key aandsimdeck typeok, no effectAlso:
npm run build:cliis clean, with no new warnings.Not tested on device: Xcode 26 and older, where nothing should change because the Indigo path runs unchanged.
Separately,
dismiss-keyboardsends Escape (usage 41), which iOS 27 doesn't treat as "hide keyboard" in a text view. That's unrelated to the transport and left as is.