Known Limitations
Platform constraints that affect automation behavior.
iOS: "Allow Paste" dialog suppressed under XCUITest
iOS 16+ shows an "Allow Paste" system prompt when an app reads UIPasteboard.general in the foreground. When an app is launched or activated through the XCUITest runner (which agent-device uses for iOS), the iOS runtime detects the testing context and silently grants pasteboard access — the prompt never appears.
This is an Apple platform constraint that affects all XCUITest-based automation tools.
Workarounds:
- Pre-fill the pasteboard via simctl — set clipboard content without triggering the dialog:
- Test the dialog manually — the "Allow Paste" UX cannot be exercised through XCUITest-based automation.
Android: non-ASCII text on real devices without the test IME helper
adb shell input text (the local ASCII-only fallback) cannot inject non-ASCII text (for example Chinese characters or emoji) on any Android system image. agent-device ships its own headless test IME (android-ime-helper) that handles this natively — it also removes the visible system keyboard from snapshots entirely, which the manual-ADBKeyBoard workaround this section used to describe never did.
- Emulators: the test IME activates automatically on
open; non-ASCIIfill/typejust work, no setup needed. - Real devices: pass
--test-imetoopento opt in (off by default on real hardware, since a stuck helper IME leaves the real keyboard unavailable until restored —agent-devicerestores the previous IME on session close and on daemon startup if a prior session crashed, andagent-device doctorflags a stuck test IME with the exactadb shell ime set <id>command to fix it manually if needed).
If the helper cannot be installed (locked-down managed devices, some cloud providers), text entry falls back to the existing ASCII-only adb shell input text path and non-ASCII fill/type reports the gap.
