Skip to content

fix: adopt UIScene lifecycle for iOS 26 launch#188

Open
juliusknorr wants to merge 1 commit into
mainfrom
fix/ios26-scene-lifecycle
Open

fix: adopt UIScene lifecycle for iOS 26 launch#188
juliusknorr wants to merge 1 commit into
mainfrom
fix/ios26-scene-lifecycle

Conversation

@juliusknorr

Copy link
Copy Markdown
Member

Summary

On iOS 26 the app terminated on launch with NoSceneLifecycleAdoption. It created its UIWindow in the app delegate via UIMainStoryboardFile and never adopted the scene lifecycle, which iOS 26 no longer allows.

Changes

  • Add a UIApplicationSceneManifest and drop UIMainStoryboardFile.
  • Create the window and handle the scene lifecycle and incoming URLs in SceneDelegate.
  • Add SceneDelegate.swift to the app target's compile sources; it was referenced but never compiled.

Testing

  • Builds and launches on the iOS 26 simulator; the login screen renders.

The app created its window in the app delegate via UIMainStoryboardFile and
never adopted the scene lifecycle, so iOS 26 terminated it on launch with
NoSceneLifecycleAdoption. Add a scene manifest, move window creation, lifecycle
and URL handling into SceneDelegate, and add SceneDelegate.swift to the app
target sources (it was never compiled).

Signed-off-by: Julius Knorr <jus@bitgrid.net>
Assisted-by: ClaudeCode:claude-opus-4-8

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the app’s launch and lifecycle wiring to properly adopt the UIScene-based lifecycle required on iOS 26, moving window creation and URL handling to SceneDelegate and aligning project/Info.plist configuration accordingly.

Changes:

  • Add/enable SceneDelegate to create the UIWindow, host the SwiftUI root view, and forward lifecycle + URL events.
  • Refactor AppDelegate to remove window ownership and expose scene-forwarded lifecycle/URL handler methods.
  • Update Info.plist and Xcode project to use UIApplicationSceneManifest and compile SceneDelegate.swift.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
Source/SceneDelegate.swift Creates the app window for the scene, hosts ContentView, forwards lifecycle + incoming URL handling.
Source/AppDelegate.swift Removes window setup and consolidates lifecycle/URL behavior into explicit handlers called by SceneDelegate.
iOCNotes.xcodeproj/project.pbxproj Adds SceneDelegate.swift to the app target’s compile sources.
Brand/iOCNotes.plist Replaces main storyboard keys with UIApplicationSceneManifest referencing SceneDelegate.

Comment on lines +50 to 54
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
for context in URLContexts {
_ = AppDelegate.shared.handleOpen(url: context.url)
}
}
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.

2 participants