iOS Simulator MCP `text` action assumes US keyboard layout (mis-maps `@` to `"` on Nordic)
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
keystrokevia 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