Skip to main content
v0.5.0 groups all WDA runner and signing settings under two YAML sections, wda: and signing:, and renames the matching setup flags. There are no compatibility aliases. Update every host’s configuration before or right after you upgrade, from v0.4.0 through v0.4.3.
v0.5.0 ignores the old keys without a warning and falls back to defaults, and the removed flags fail with Error: unknown flag. See Configuration keys and Setup flags for the new names.

Upgrade checklist

1

Stop everything that owns a phone

Stop detached portals with mobilerun-ios stop. Stop foreground portals and auto with Ctrl+C and wait for them to exit. Do not run v0.4.x and v0.5.0 against the same phone at the same time: the older binary does not honor the new device-ownership lock.
2

Finish pending factory onboardings

If auto or reset is part-way through preparing a factory-state phone, let it finish before you upgrade. v0.5.0 does not resume a checkpoint written by v0.4.x: it stops with checkpoint written by an older version. If that happens, remove the phone’s directory under ~/.mobilerun-ios/onboarding/ and prepare the phone again.
3

Find the old settings

Run both checks. Any output is a setting that v0.5.0 ignores.
Also search your scripts, launchd/systemd units, and CI jobs for --runner-url and --bundle-id.
4

Rename them

Move each setting to its new key, environment variable, or flag. See Configuration keys, Environment variables, and Setup flags.
5

Upgrade and check

Installer users rerun the install script instead. Rerun the two checks from the previous step; both must print nothing. When the CLI next signs a runner, it logs the backend, Apple account or identity, and runner bundle identifier it chose. Check that they match your configuration.

Configuration keys

Change these keys in ~/.mobilerun-ios/config.yaml. The values and their meaning stay the same. Until you do, the CLI signs the default runner with a derived bundle ID, finds no App Store Connect accounts, and skips your pre-signed runner.
Keep token, remote_url, auth_url, ddi_path, ddi_url, supervision_cert, supervision_key, and the reset_* keys as they are.

Environment variables

Nested keys map to environment variables in upper case, with dots replaced by underscores. signing.accounts is a list. Set it in YAML, not in an environment variable.

MOBILERUN_IOS_WDA_BUNDLE_ID changed meaning

In v0.4.x, MOBILERUN_IOS_WDA_BUNDLE_ID and the portal’s --wda-bundle-id only picked which installed runner to launch. In v0.5.0 the same value, and wda.bundle_id, is also the identifier that setup, auto, and reset sign and install. If you set it only to pick a launch target, make sure it is the identifier you want to provision too, or remove it and let the CLI discover the runner.

Setup flags

--backend, --account, --identity, --ddi-path, --ddi-url, --wda, --reinstall, and --non-interactive are unchanged.

Other changes that need action

setup reads the signing selection from config

In v0.4.x, only auto read backend, account, and identity from YAML. In v0.5.0, setup, auto, and reset all read signing.backend, signing.account, and signing.identity. If these are set, interactive setup uses them without asking. Pass --backend, --account, or --identity to override them for one run. If signing.* selects a backend, the CLI signs even when wda.signed_url is set, and it logs that choice. A signing error never falls back to the pre-signed artifact. See Runner source precedence.

reset no longer requires a pre-signed runner

reset used to require wda_ipa_url. It now uses the same signing pipeline as setup: your signing.* configuration, or wda.signed_url when no signing backend is selected. Before it erases the phone, it checks the local signing prerequisites. It also keeps the phone’s saved control mode, so a native-mode phone is not given a WDA runner.

Wi-Fi settings moved into the fleet profile (deprecated, still work)

wifi_ssid, wifi_password, and wifi_enc_type still work in v0.5.0, but they log a deprecation warning at startup. Move them into the new profile: section:
The CLI now installs one supervised configuration profile, com.mobilerun.fleet, that carries Wi-Fi and device restrictions. On a host with a fleet profile configured, every attach of a phone this host supervises checks that profile. It installs or updates the profile, and removes the separate Wi-Fi profile that v0.4.x installed. The built-in restrictions turn off AirDrop. See Fleet profile. Quote all-digit passwords and SSIDs in YAML. A numeric value is rejected.

Behavior changes

You do not need to change anything for these, but they can change what you see.