Skip to content

Open on iOS 27: UIKit scene startup - #17

Merged
chrissotraidis merged 1 commit into
mainfrom
codex/ios27-scenes
Oct 4, 2026
Merged

chrissotraidis merged 1 commit into
mainfrom
codex/ios27-scenes

Conversation

@chrissotraidis

Copy link
Copy Markdown
Owner

Apps built with Xcode 27 (the iOS 27 SDK) must start through UIKit scenes, or iOS/iPadOS 27 stops them at launch (EXC_BREAKPOINT in _UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption). MaskPad v0.2.0 built with Xcode 27 has no scene startup, so it may not open on iOS 27.

  • patches/libultraship-ios.patch now also makes libultraship fetch SDL 2.32.10 with the scene backport StarshipPad and SpaghettiPad use (scene delegate that starts SDL once, windows and first-run alerts on the application scene, scene-aware orientation), through libultraship's edit-preserving patch step.
  • patches/libultraship-uikit-scenes.patch adds only that part to a checkout patched before it; apply-patches.sh uses it as an upgrade and then requires the complete patch, the same way StarshipPad does.
  • ios/Info.plist.in declares a single application scene.

The touch controls already find their window through the connected scenes.

Checked on this Mac (Xcode 27.0, iOS 27.0 Simulator 24A434):

  • The complete patch applies to a pristine libultraship at the pin, the upgrade applies over the old patch, and the result reverse-checks (verify-release.sh).
  • A minimal app with the old startup built with SDK 27 crashes at launch with that assertion.
  • MaskPad built for the Simulator from this branch keeps running and shows its "Add your Majora's Mask ROM" prompt, with no crash report.

Not checked on a physical iOS 27 device.

@chrissotraidis
chrissotraidis merged commit 7fa910d into main Oct 4, 2026
3 checks passed
@chrissotraidis
chrissotraidis deleted the codex/ios27-scenes branch October 4, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant