Virtual devices
Android emulators and iOS simulators as an opt-in alternative to the real-device fleet — what they are good for, what they cannot do, and how to pick one.
Real phones are the default everywhere in Live and Automate. Virtual devices are an opt-in tier you switch to on purpose: Android emulators and virtual iPhones (iOS simulators) running on our own hardware. They are never substituted for a real phone you asked for — if you pick a Pixel 8 and none is free, you wait or get told, you do not get an emulator.
When to use one
- Screen sizes and OS versions we do not have as hardware. The virtual list is wide: every current iPhone and iPad shape, and more than one iOS version per model.
- Mobile web checks where the browser engine matters more than the hardware.
- Quick app smoke tests with a build made for a virtual device.
For anything that depends on the real thing — camera, sensors, battery, push notifications, vendor-specific behaviour, a real carrier network — use a real phone.
How to pick one
In the Live Browser or App Live picker, flip the Real device / Virtual device switch above the platform tiles, then choose Android or iPhone and a model.
In Automate, add virtual: true to testkase:options. Without it, your script gets a
real device exactly as before.
Virtual iPhones (iOS simulators)
| Real iPhone | Virtual iPhone | |
|---|---|---|
| Browsers | Safari, Chrome | Safari only — Chrome does not exist for a simulator |
| App builds | .ipa (development / ad-hoc export) | a zipped simulator .app — see below |
| App Store | yes, with your own Apple ID | no |
| VPN / exit IP, audio, network (HAR) capture | yes | no — the controls are hidden |
| Wi-Fi / Bluetooth toggles | yes | no — a simulator has no radio (it uses the Mac's network) |
| Timezone | yes | yes — changed mid-session, see below |
| Location (GPS) | yes | yes — set a coordinate live; starts on a default so it's never empty |
| Dark mode | yes | yes — from Device settings |
| Files & media | yes | yes — photos/videos added to the gallery |
| Screen recording | yes | yes |
| Typing | full, including emoji and non-Latin scripts | keyboard characters only (no emoji / non-Latin) |
| Screen motion | full rate | about 9 frames per second |
| Reset | cleaned between sessions | erased between sessions |
Which iOS version is it? The model name is the screen: an "iPhone 15" is the iPhone 15's size and shape. The iOS version is the one listed next to it, and the same model may be offered on more than one version. The picker shows both, so choose the pair you mean.
App builds for a virtual iPhone
An .ipa cannot run on a simulator — Apple compiles device and simulator builds for
different targets, and no farm can convert one into the other. A build downloaded from the
App Store cannot be tested on a simulator at all.
Upload a zipped simulator build instead:
- In Xcode, build your app for Any iOS Simulator Device (or run it once in a simulator).
- Find the
.appinBuild/Products/Debug-iphonesimulator/(Product → Show Build Folder). - Zip that one
.appfolder and upload the.zipin the picker's upload area.
Timezone on a virtual iPhone
You can change a virtual iPhone's timezone while a Live session is running — pick a zone from the device controls, or reset to the node default. The screen greys over for a few seconds ("Applying timezone…") while the browser reloads on the new zone, then hands back with the page already showing the new time. Dates and times in the page — anything read from the browser's clock — follow the zone you picked. The zone resets automatically when the session ends.
Android emulators
Android emulators run stock Android with all four mobile browsers — Chrome, Firefox, Edge
and Opera — and install your normal .apk. Some apps that ship device-only native
libraries will not run; that is the emulator, not your build.
SMS & OTP
Receive real one-time codes and 2FA texts on a phone with a live SIM — read them in your Live session or from an Automate script, so the flows behind a verification code stay testable.
Session Tools
The in-session toolbar — screenshots, recording, audio, device controls, settings, files and media, gallery, logs, device info, and ending a session.
