Released September 19, 2026
New
- String Catalog tooling –
localizationnow covers writing an.xcstringsfile from a script: the byte layout Xcode expects, the two key styles a tool must read, andxcstringstool, including the--skip-marking-strings-staleflag that keepssyncfrom deleting untranslated entries missing from its input. It also explains why one English word used for two meanings ships one translation, whatever its comments say.
Updated
- iPhone Duo vertical bars – Explains that toolbar items join a vertical bar only inside a system-managed container, what hosting a
NavigationStackin a custom layer costs (an opaque background, and the window’s safe-area insets returned to its content), and why a control with on, off and unavailable states needs a custom view opted in with.axisBehavior(.verticalPreferred). - Simulator rotation – Points to
devicectl device orientation setfor rotating a simulator from the host, checked by the screenshot’s dimensions. It notes that iPhone Duo ignores the command, since its poses change only in Device Hub, and that iPad refuses an app’s ownrequestGeometryUpdateunder the windowing model, reporting it only to the error handler. The change coversdevice-control-ref,iphone-duoanduikit-modernization. - Simulator screenshots – Explains what each screenshot mask shows at a display’s rounded corners, and how to capture a chosen display on a device with two, since iPhone Duo’s default capture is its inner display, even while the device is closed. The change covers
device-control-refandiphone-duo. - Simulator tap styles – Pass
--tap-style physicalto every directaxe tap, because SwiftUI buttons, list rows, menus and tabs ignore AXe’s default style, and judge any tap by its effect, since it reports success either way. The change coversaxe-ref,xcui-ref,simulator-testerand the tool notes Axiom adds at session start. - Also updated – Apple’s shipped translations and App Shortcuts phrases in the simulator runtime, as a reference for exact UI wording, and the iOS 27.1 simulator runtime, which creates only iPhone Duo.
Fixed
xcuidevice selection – With more than one simulator booted and no--udid, every command that drives a device exits with status 2 and lists each booted simulator’s UDID, name and runtime, anddoctorreports the same list.
Changed
- AXe 1.7.0 required –
xcuinow requires AXe 1.7.0 or later, which itsdoctorcommand checks; upgrade withbrew upgrade cameroncooke/axe/axe. Its taps send a physical touch unless you choose a tap style, so SwiftUI buttons, list rows, menus and tabs respond, anddialog acceptanddismissclose system alerts.
Full Changelog: v27.1.1...v27.1.2