Slimming a simulator now costs one boot
A slim simulator used to cost a boot, one launchctl call per disabled service,
and a reboot to apply them. mobai-ci now writes the launchd overrides to the
simulator while it is still shut down, so it comes up slim on its first boot. On
an iPhone 17 Pro / iOS 26.5 a 170-service profile went from 2m14s to 33s, and
nearly all of what is left is the boot itself.
One simulator cache for slim and stock jobs
The cached simulator image no longer carries slim state, because the per-run clone is slimmed before its first boot instead. Editing a slim profile no longer invalidates the cache, and slim and stock jobs share a single image. Images built by earlier releases are still restored, so existing caches stay warm through the upgrade.
If you use the mobai-ci GitHub Action, take its latest revision alongside this
release: it drops the profile hash from the simulator cache key on 0.6.0 and
newer, while keeping the old per-profile key for workflows that pin an earlier
version.
Updated device bridges
- iOS bridge 12: iPhone Duo (two displays) support, and OCR results now line up with the UI tree in landscape on every iPhone, where they were previously off by a rotation.
- Android bridge 278.
New fold action
.mob flows can drive a foldable iOS simulator's hinge: fold closed,
fold book, fold open, or an angle such as fold 90. Simulators only.