Beside the session

Simulators and devices

Open an iOS simulator, an Android emulator or a real iPhone in the side panel, use it with the mouse, and let your agent tap through your app and read its screen.

On this page
  1. Open a device
  2. A real iPhone
  3. What your agent can do
  4. A Mac left running as a lab

Open a device

  1. In the side panel, choose + ▸ Simulator, or Open a simulator in the palette.
  2. Under Which simulator?, pick a device: the iOS simulators installed with Xcode, Android emulators, and real devices plugged into this Mac.
  3. Realm boots the simulator if it isn't running, streams its screen into the pane, and leaves it booted when the pane closes, so a cold start only happens once.

Click and drag on the screen to tap and swipe, and type to type. The device keeps its controls in a toolbar centred over it:

ControlWhat it does
HomePress the home button
RotateRotate the device
ScreenshotSave a screenshot of the device into the space's simulator/ folder
ElementsShow the device's elements: the accessibility tree behind the screen
More device controlsVolume, the side button, the device's apps, the device frame, and Device settings…: light or dark appearance, text size, Reduce Motion, Reduce Transparency, Increase Contrast, colour filters, slow animations and the debug overlays
NoteSimulators need Xcode for iOS, and the Android SDK's adb for Android. They're a Mac feature, so on Linux and Windows the menu doesn't offer them.

A real iPhone

An iPhone or iPad on a cable shows up under Connected devices. Realm reaches it through Xcode with a small test runner it installs on the phone while the pane is open, and the pane says what's missing when something is:

  • Developer Mode on the phone (Settings ▸ Privacy & Security ▸ Developer Mode)
  • UI automation allowed (Settings ▸ Developer ▸ Enable UI Automation)
  • Your developer certificate trusted (Settings ▸ General ▸ VPN & Device Management)
  • An Apple Development identity on this Mac, from Xcode ▸ Settings ▸ Accounts. Running any app on the phone from Xcode once registers it with your team.
  • The phone unlocked, and an Xcode at least as new as the phone's iOS.

What your agent can do

With Realm's simulator tools an agent can list the devices, open one in a pane, install and launch an app, open a URL, read the screen's elements and take screenshots, and tap, double-tap, long-press, swipe, type and press the device's buttons. It reads elements by their labels, so it taps "Sign in" rather than a coordinate.

  • Reading a device (its elements, its apps, a screenshot) never asks.
  • Opening, installing and launching follow the session's permission mode.
  • Tapping, typing and swiping ask once per device per session, and either Allow covers the rest of that session. Full access skips the card for a simulator or an emulator.
  • A physical iPhone, iPad or Android phone asks even in Full access. In Plan and Ask, an agent can only read a device.
  • When an agent walks a path of several taps in one go, it stops rather than guess, and never takes a step that buys, deletes, sends, signs out or enters a password.
CarefulA real phone holds your accounts. Give an agent one to drive only when you're ready to answer its requests.

Record for Laya

Under a device's screen, Record my use of this app… records you using the app, for Laya to learn from. It shows what is kept before anything starts.

A Mac left running as a lab

Settings ▸ Lab is for a Mac that stays on to run a team's work, such as a Mac mini with phones plugged in. This Mac is a lab makes updates wait for the Update window you set and for team runs to finish, then install on their own. Ready to be left alone checks the settings an unattended Mac needs, and Devices lists the phones and simulators the lab can use. From your laptop says how to reach the lab Mac over Screen Sharing.