TestKase
TestKase
|Docs
Live

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 iPhoneVirtual iPhone
BrowsersSafari, ChromeSafari only — Chrome does not exist for a simulator
App builds.ipa (development / ad-hoc export)a zipped simulator .app — see below
App Storeyes, with your own Apple IDno
VPN / exit IP, audio, network (HAR) captureyesno — the controls are hidden
Wi-Fi / Bluetooth togglesyesno — a simulator has no radio (it uses the Mac's network)
Timezoneyesyes — changed mid-session, see below
Location (GPS)yesyes — set a coordinate live; starts on a default so it's never empty
Dark modeyesyes — from Device settings
Files & mediayesyes — photos/videos added to the gallery
Screen recordingyesyes
Typingfull, including emoji and non-Latin scriptskeyboard characters only (no emoji / non-Latin)
Screen motionfull rateabout 9 frames per second
Resetcleaned between sessionserased 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:

  1. In Xcode, build your app for Any iOS Simulator Device (or run it once in a simulator).
  2. Find the .app in Build/Products/Debug-iphonesimulator/ (Product → Show Build Folder).
  3. Zip that one .app folder and upload the .zip in 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.