Repository navigation
ci: build release runners with Xcode 26.3 (DRO-3369) - #42
Conversation
Release assets were built with Xcode 16.4 against the iOS 18.4 SDK. On iOS 26 that runner's first broadcast start after a launch fails: the confirmation tap lands only after ~6.5 s and starts nothing, so the start times out with 408 and leaves the broadcast sheet open (DRO-3369). An Xcode 26.3 build of the same source (iOS 26.2 SDK, deployment target still 13.0) connected 4/4 cold starts on the same phone; the 16.4 build connected 0/6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Where the 26.3 / 26.4 boundary comes fromUpstream Appium, not us:
So 26.3 is the newest Xcode with a maintainer's positive report on old iOS. That is one local check, not a CI-verified matrix. iOS 13: not supported, before or after this PRMinimum OS of every bundle in the built runner, v1.3.3 release (Xcode 16.4) vs the 26.3 test build (run 38741836143). The two are identical:
(Mach-O What 26.3 does not do (unlike the 26.4 report): it doesn't raise the XCTest modules to 15.8; they stay at 15.0. Still open before ready
|
Problem
Release assets (
prebuild.yml→ GitHub release zips thatmobilerun-ios setupinstalls;prebuild-r2.yml→ signed WDA on R2) are built with Xcode 16.4 / iOS 18.4 SDK. On iOS 26, the first broadcast start after a fresh runner launch fails with that build. The confirmation tap only lands at ~6.5 s and starts nothing, replayd never sets up a session, and the start times out with 408. The Control Center broadcast sheet is left open, which then also blocks the portal's Auto-Lock normalization.Evidence
Same phone (
…14DA001C, iPhone 15, iOS 26.6.1), same cold-start harness (stop broadcast + portal, restart portal, judge by WDA'sbroadcast/start: extension connect…syslog line):4f5b9a75, Xcode 27.0 (local)No code change was needed: a diagnostic build showed every confirm-button query answering in 10–70 ms. The variable is the SDK the runner is linked against.
Change
XCODE_VERSION: "16.4"→"26.3"inprebuild.ymlandprebuild-r2.yml.publish.js.yml(upstream npm publish) and the upstreamwda-tests.ymlmin/max matrix are left as they are.Open before ready
Linear: DRO-3369
🤖 Generated with Claude Code