[BUG] Claude can no longer control MacOS Simulator after 27 update
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Summary
iOS Simulator control in Claude Code (desktop app) receives no synthetic input (tap/swipe) after upgrading to macOS 27.0 / Xcode 27.0. Screenshot capture, hardware button presses, and launch all work correctly — only touch/gesture injection into the simulator is affected.
Environment
- macOS 27.0 (build 26A428)
- Xcode 27.0 (build 27A266a)
- Device tested: iPhone 17 Pro simulator (iOS 26.5 runtime)
- Also reproduces on iPhone 17 Pro Max / other iOS 26.5-paired devices in the same runtime
Symptom
screenshotsucceeds reliably and reflects real, current simulator state (clock ticks forward, app content is correct).button(hardware HOME) works — backgrounds the app as expected.launch(both via the tool and viaxcrun simctl launch) succeeds and the app UI renders correctly.tapandswipecalls return success (no error from the tool) but produce no effect whatsoever in the simulator — no visual change, no state change, confirmed via before/after screenshot diffing across dozens of attempts.- Fails on the very first interaction of a completely fresh app/simulator state, not just after prolonged use.
What's been ruled out
- Stale simulator/app state — reproduces identically on a freshly booted simulator with the app freshly installed (not just relaunched).
- Multiple competing booted simulators — reproduces with only one simulator booted at a time.
- App-level session/cache state — reproduces on a completely fresh install with no prior data.
- Claude app process state — reproduces after quitting and relaunching the Claude desktop app.
- Simulator daemon state — reproduces after a full
simctl shutdown+simctl bootcycle. - Full machine restart — reproduces identically immediately after a full macOS restart.
- macOS Privacy & Security permission —
Device Control and Data Access(the renamed successor to the old Accessibility permission in macOS 27) already had Claude granted; toggled off and back on, restarted Claude, reproduces identically. - Coordinate/calibration error — tried many different coordinates across the full screen (not just one region), including known-good reference points (e.g., search bar tap that worked in a prior session before this issue began); all fail identically post-upgrade.
Working theory
This began immediately after updating macOS and Xcode to the versions above (same session, prior interactions with the identical simulator/tool worked normally before the update). Given screenshot capture and hardware-button injection still work but touch/gesture injection does not, this looks like a compatibility break between the Claude app's touch-injection mechanism (likely CGEvent-based or a CoreSimulator IO framework call) and something that changed in macOS 27 / Xcode 27 — a private API signature change, a new entitlement requirement, or a CoreSimulator protocol version bump — rather than a permissions or environment-state issue.
Impact
Blocks all live UI testing/interaction with iOS apps in the Simulator via Claude Code. Screenshot-only verification and code review remain possible but cannot substitute for interactive testing (tapping buttons, filling forms, confirming dialogs, etc.).
What Should Happen?
What should happen
tap/swipe calls to the iOS Simulator should register real touch events in the simulator, the same as they did before the macOS 27 / Xcode 27 update — e.g., tapping "Accept" on a Terms-of-Service screen should dismiss it and reveal the next screen, and tapping a tab-bar item should switch tabs. Screenshot output should reflect that state change on the next call.
Concretely: tapping the "Accept" button at its correct on-screen coordinates (verified via screenshot) should complete the terms-acceptance flow and give visible feedback in the following screenshot, either terms accepted and the underlying app usable, or a new UI. Instead the screen is bit-for-bit identical after the tap.
Error Messages/Logs
Steps to Reproduce
Steps to reproduce
- Update macOS and Xcode to the versions in the Environment section above (macOS 27.0 build 26A428, Xcode 27.0 build 27A266a).
- In Claude Code, boot an iOS Simulator device (e.g.
xcrun simctl boot <iPhone 17 Pro UDID>, or let the tool boot it). - Attach to it via the iOS Simulator tool's
attachaction. - Call
screenshot— confirm it returns a correct, current image of the simulator (e.g. the Home Screen or whatever app is in front). - Note the on-screen coordinates (in device points) of any visible, tappable control — for example, an app icon on the Home Screen, or a button inside an app.
- Call
tapwith those exact coordinates. - Call
screenshotagain.
Actual result
The second screenshot (step 7) is identical to the first (step 4) — the tapped control shows no effect: no app launched, no button state change, no navigation. This holds regardless of which control is tapped, which app is in front, or whether the simulator/app was freshly booted/installed moments before.
Other input types remain unaffected for comparison:
buttonwithname: HOMEcorrectly backgrounds the front app (visible in the next screenshot).launchcorrectly installs/launches an app (visible in the next screenshot).swipeshows the same failure astap— no scroll, no gesture effect.
Minimal isolation already performed
Repeating steps 2–7 after each of the following still reproduces the identical failure:
- A freshly booted simulator (
simctl shutdown+simctl boot) with no other simulator concurrently booted. - A freshly installed app with no prior data/session state.
- Restarting the Claude desktop app.
- A full macOS restart.
- Toggling
Device Control and Data Accessoff and back on in System Settings → Privacy & Security (was already granted to Claude beforehand).
None of the above changes the outcome — steps 4–7 fail identically every time.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude 2.110.1 (ae8d2a) 2026-09-17T03:04:01.000Z
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
_No response_