Skip to main content

setup

setup prepares one connected iPhone. With no UDID, it selects the sole connected device or opens an interactive picker. With multiple phones in a non-interactive session, pass the UDID explicitly. The walkthrough checks and repairs prerequisites in order: Developer Mode, a compatible developer disk image (DDI), and—when WDA is selected—the runner’s signing, installation, and ability to launch. It handles reconnects around Developer Mode changes, but cannot accept on-device trust, unlock, or confirmation prompts for you. A rerun skips satisfied steps. In particular, an installed Mobilerun runner is not automatically re-signed. If its signature has expired, use --reinstall.
Stop the device’s portal before running setup or verify. Only one setup or portal session can use the device at a time. Use mobilerun-ios stop <udid> for a detached portal, or stop the foreground process with Ctrl+C.

Flags

--log-level, --verbose / -v, and --tunnel-mode are inherited global flags. See Configuration for their environment equivalents.

Examples

Non-interactive setup is not a way around Apple device prompts. Complete host trust, Developer Mode confirmation, and developer trust on the phone before expecting unattended success.

Control-mode persistence

The selected mode is stored in ~/.mobilerun-ios/devices/<udid>.json, not in config.yaml. Without a saved choice, versions below iOS 27 use WDA; iOS 27+ preserves an installed runner or selects native control when none exists. MOBILERUN_IOS_REMOTE_XPC_ONLY=true selects native control; false selects WDA. An explicit setup mode that conflicts with this environment override is rejected. Unset or align the environment variable before changing the saved choice. See native operation for the video tunnel and feature limitations.

verify

verify requires exactly one UDID. It prints a check table and exits non-zero if readiness is incomplete or cannot be determined. It does not repair Developer Mode, mount a missing DDI, or install a runner. Checks follow the same saved/default mode as setup:
  • Device identity and Developer Mode.
  • Mounted developer disk image.
  • Runner presence in WDA mode.
  • Required native services and device capabilities in native mode. If prerequisites are missing, native readiness is reported as not checked, not as proof that native control is unsupported.
Normal verification checks readiness without repairing the device. --deep is an active launch probe: it may start the runner and clean up that probe process. An already-running runner is preserved. It is not a native-mode deep check and does not test cloud authentication, browser decoding, or end-to-end task execution.

When verification fails

After repairs, rerun verification, start the portal, then confirm streaming and a task in the cloud dashboard.