Before you change capture behavior on a multi-panel device, read ADR 0025.
To list the panels, run xcrun devicectl device info displays --device <udid>.
- Panels: the command lists each integrated panel with
backlightState. Only the lit panel permits capture. A capture of the dark panel exits 0 and writes an all-black PNG. - Input routing: after each pose change, verify a fresh control.
A successful synthesis acknowledgement does not prove a hit.
Examine the runner and simulator
testmanagerd/BackBoard logs for display identity and delivery. The resolved app window owns gesture coordinates and its target screen. - Pose:
agent-device fold closed|half-open|opensends private HID inside the simulator. It reads the hinge back throughdevicectl device motion hinge-angle. Device Hub and host Accessibility permission are not required. After a fold, take another snapshot. Folds invalidate refs and coordinates. Verify locally with Device Hub stopped and the simulator booted throughsimctl boot. Test these items:- All three poses.
- Capture of the active panel.
- An app interaction.
Until GHA supports the runtime, Duo coverage remains local.
To examine the angle separately, run:
xcrun devicectl device motion hinge-angle --device <udid> --session-timeout 1 --timeout 5.
- Touch overlays export at the captured track size.
The compositor checks its output size and non-black content against the raw capture.
If that check fails,
record stopkeeps the raw file. It reportsoverlayWarning.record start --hide-touchesis only for the fastest raw capture. - To launch on iOS 27.0/27.1, iOS 27 SDK apps need UIScene lifecycle.