What you can build today
The host running your CLI or agent does not need a local simulator. For example,
a Linux CI runner can control an iOS simulator hosted by Revyl. Use
remote builds to compile your app in the cloud too.
Separate the device from the test runner
How this compares with Limrun
Both platforms provide cloud builds and virtual devices. The difference for an existing test suite is the connection between its runner and the device.
Limrun keeps its initial path short: build, create or attach a device, then run
the existing test. Device catalogs and advanced build options are not required
reading for that first run. Revyl’s quickstart
likewise starts with the minimum device workflow; detailed build setup lives
in the Builds guides.
Sources: Limrun’s quickstart,
Gradle builds,
Appium, and
Maestro guides. This compares
documented behavior, not a live benchmark of the two services.
What needs to be added for Appium and Maestro
The Revyl Appium driver and Maestro runner provide a smaller path: native command subsets over existing device APIs, without ADB or WebDriverAgent. The Maestro runner uses the genuine published runtime with a custom driver; it is not a plugin for stockmaestro test. Both are private source integrations
with synthetic-app checks covering native Appium lookup and gestures, plus
Maestro actions, deletion, appearance, and deep links on staging Android
emulators and iOS simulators. Maestro input/paste uses the existing viewer control
channel with explicit limitations
and loopback-only integration coverage. Duration-preserving swipe/scroll remains
gated on undeployed worker capabilities. These subsets do not establish broader
compatibility. The requirements below are for
broader standard-driver and stock Maestro compatibility, not prerequisites
for those subsets or a delivery commitment:
- Android connectivity: expose an authenticated, session-scoped ADB connection or a managed runner with device access. Verify Appium first and Maestro separately rather than assuming every ADB-based tool works.
- iOS Appium execution: provide an Appium/XCUITest runner on the simulator’s Mac, or a remote adapter for WebDriverAgent, simulator lifecycle, and file operations. A viewer URL alone cannot replace those interfaces.
- iOS Maestro execution: provide a managed Maestro runner or an adapter that installs and starts its XCTest driver and forwards lifecycle operations. Publish which flow commands and Maestro versions work.
- An end-to-end contract: tie framework sessions to the allocated device, enforce ownership and expiry, return test exit codes and artifacts, and release the device on failure. Validate the complete build → install → assertion → evidence → cleanup path before claiming compatibility.
Device quickstart
Provision a device, run your own commands, collect evidence, and clean up.
Appium
Use the supported native subset and understand its compatibility limits.
Maestro
Understand how YAML flows connect to Android and iOS devices.
Embed a live device
Put an interactive app session in your own product, website, or docs.
Device and build boundaries
These workflows use virtual devices, not physical handsets. Bring an iOS simulator.app or zipped .app, or a single Android .apk with a supported
64-bit ABI. A physical-device .ipa or Android .aab is not interchangeable
with those artifacts. See Artifact requirements.
Treat session output, screenshots, logs, and app state as private. Keep API keys
in your secret manager, use a test account and non-sensitive fixture data, and
stop the specific session your job created. Parallel jobs should each use
their own session ID rather than relying on a shared active-device selection.