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.
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
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.
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, onlyauto 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:
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.