Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First step of #145 (iPhone Duo), and unfinished: a draft to show where it stands, not a request to merge.
Built with Xcode 27.1 the app dies at launch on iOS 27 ("UIScene life cycle is required for apps built with this SDK"), and Expo ships a scene delegate only from SDK 57.0.23. This adds a config plugin that adopts scenes: it declares the scene manifest and moves the window and React Native's start from the app delegate into a scene delegate. It is off unless
IOS_SCENE_LIFECYCLE=1is set at prebuild, so the project generated for today's builds is the same as before.Changes
plugins/ios-scene-lifecycle.js(new): the scene manifest in Info.plist and aSceneDelegateappended toAppDelegate.swift; links and user activities go on through the app delegate. It stops the prebuild if the Expo template'sAppDelegateno longer has the lines it moves.app.config.js: loads the plugin whenIOS_SCENE_LIFECYCLE=1.docs/ios-release.md: the iPhone Duo under "What does not work on iOS yet".Related issues
Part of #145
Type of change
Checklist
npx tsc --noEmit,npx vitest runandnpm run i18n:checkare clean (not run locally; left to CI on this PR)How it was tested
On GitHub's
xcode-27runner (Xcode 27.1), Release builds for the simulator, started on the iPhone Duo simulator (iOS 27.1) with no account signed in:mainmainIOS_SCENE_LIFECYCLE=1Not tested, and why this stays a draft:
No unit test covers the plugin.
Screenshots
The Duo's outer display. Left:
mainbuilt with Xcode 26.6. Right: this branch built with Xcode 27.1 andIOS_SCENE_LIFECYCLE=1.🤖 Generated with Claude Code