iOS Simulator MCP `text` action assumes US keyboard layout (mis-maps `@` to `"` on Nordic)

Status Open
Maintainer reply None cached
Activity 0 comments · opened Aug 8, 2026

What happened

Using the iOS Simulator MCP (mcp__Claude_Code_iOS_Simulator__control) with action: "text" to type into a focused text field, the @ character is injected as ".

For example, typing rider1@example.com into an email field produces rider1"example.com, which breaks automated email entry (e.g. driving a login form during UI verification).

Likely root cause

The text injection appears to synthesize keystrokes for a US keyboard layout, but the host Mac is set to a Nordic/Swedish layout, so the same key positions produce different characters:

| Key combo | US layout | Nordic/Swedish layout |
| --- | --- | --- |
| Shift + 2 | @ | " |
| Option + 2 | (nothing) | @ |

So an injection that presses "Shift+2" to mean @ lands as " on the Nordic layout. This also predicts misfires for other symbols that are Option-combos on Nordic layouts (\ | { } [ ] $), which are Shift/base keys on US.

Expected

@ (and other symbols) inject as the intended character regardless of the host keyboard layout — the injection should be layout-aware or send the characters directly rather than synthesizing US key positions.

Notes

  • Typing the same string directly in Simulator.app (physically) works correctly, because the user presses the keys that are correct for their own layout. Only the layout-blind injection fails.
  • Workarounds that also failed: a synthesized long-press → Paste (the edit callout didn't reliably appear), and driving keystroke via AppleScript System Events (automation-permission gated / timed out).

Environment

  • Claude desktop app, embedded iOS Simulator panel
  • Simulator: iPhone 17 Pro, iOS 26
  • Host: macOS (Apple Silicon), keyboard layout: Swedish / Nordic

View original on GitHub ↗