UIKit's Scene Mandate: What Fails to Launch on iOS 27
Apple’s migration documentation states the hardest requirement of the iOS 27 cycle in one sentence: “Beginning in iOS 27, iPadOS 27, Mac Catalyst 27, tvOS 27, and visionOS 27, apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.”1 Not deprecated, not warned, not slower: fail to launch. Session 278 says it just as plainly: “UIScene lifecycle is now required when building with the latest SDKs. Without it, your application will no longer launch.”2 Every UIKit app still running on the old app-delegate life cycle has until it builds against the iOS 27 SDK to migrate, and the warning phase is already years deep.
The requirement, stated at 2:36 in session 278.
TL;DR
- Apps built with the iOS 27 SDK must use the UIKit scene-based life cycle or they fail to launch, across iOS, iPadOS, Mac Catalyst, tvOS, and visionOS 27.1 Existing binaries built with older SDKs keep working; the wall is the SDK you build against.
- The escalation was staged: UIKit started logging a migration message back in iOS 18.4, and the message changed in iOS 26. iOS 27 is where the log becomes a launch failure.1
- You need to migrate if either condition holds: your Info.plist has no
UIApplicationSceneManifestkey with a configuration, or your app delegate doesn’t implement the scene-configuration method.1 - The minimal migration is small: a scene manifest entry in the property list, or the delegate method for dynamic configurations. Supporting multiple scenes stays optional.1
- Xcode 27 ships an app modernization agent skill that converts apps to the scene life cycle, rewrites main-screen and orientation checks, asks clarifying questions on complex tasks, and leaves comments for work it can’t finish in one session.2
A mandate, not a deprecation
The 27 cycle has a pattern of pruning APIs one release after their replacements mature: ImageCreator stops working in iOS 27, and MXMetricManager carries a 27.0 deprecation the same week its replacement shipped. The scene requirement is the most consequential entry in that pattern because it gates the entire app, not a feature. An app that never touches Image Playground loses nothing this fall. An app that ignores the scene life cycle stops launching the day it builds with the new SDK.
The timeline shows how much runway Apple burned before enforcing. Starting in iOS 18.4, iPadOS 18.4, Mac Catalyst 18.4, tvOS 18.4, and visionOS 2.4, UIKit logged a message for apps that hadn’t migrated, and in the 26 releases the message changed.1 Two releases of warnings, then the floor drops. The conceptual groundwork is even older: the session reaches back to WWDC 2014 for Bruce Nilo’s framing that “a device rotation is only an animated bounds change,” and notes that with resizable iPad windows and resizable iPhone apps, “today this insight is more relevant than ever.”2
One boundary worth stating precisely: the requirement binds apps “built with the latest SDK.”1 Shipping binaries built against iOS 26 or earlier SDKs keep launching. The moment you rebuild with Xcode 27’s SDKs to pick up anything new, the scene life cycle comes with it.
Do you actually need to migrate?
The documentation gives a two-condition test. Migrate if the UIApplicationSceneManifest key is missing from your information property list (or has no specified configurations), or if your app delegate doesn’t implement the scene-configuration method.1 Most apps started after 2019 pass already; Xcode’s templates have generated scene-based projects since then. The apps caught by the mandate are the long-lived ones whose AppDelegate still owns the window.
The minimal fix is one of two routes. The static route adds a UIApplicationSceneManifest key with a scene configuration to the property list, reachable through the target’s General settings under “Scene manifest” in Deployment Info.1 The dynamic route implements the scene-configuration delegate method instead, for apps that customize scenes based on user activities or handle different scene roles; the doc’s example uses the session’s role property to determine which scene to create.1 Apps that load the root view controller from a storyboard include the storyboard name in the scene manifest, and the system configures the window scene and root view controller automatically.1
What the mandate does not require is multiple scenes. The doc is explicit that multiple-scene support stays optional and may require restructuring your data model to be scene-specific; it tells you to consider whether the user experience benefits before enabling it.1 Migrating means moving life-cycle events from the app level to the scene level, where UIApplicationDelegate keeps process-level events and the scene delegate takes UI-specific ones.1 One detail that trips up configuration: specify UIWindowScene objects rather than plain UIScene objects, and CarPlay scenes use their own template-application scene type.1
Why now: everything resizes
The mandate lands in the same release that makes resizability universal, and session 278 presents them as one story. In iOS and macOS 27, iPhone Mirroring windows on the Mac resize freely, and an iPhone-only app running on iPad becomes “fully resizable like any other iPad app.”2 The scene life cycle is, in the session’s words, “the basis for any adaptive app”: the prerequisite for everything else the session asks you to fix.2
The fix list is a purge of screen-centric assumptions. References to the main screen return incorrect information once your scene lives on a different display, so the session says to access the screen dynamically through the window’s window scene, or better, remove screen references entirely: screen scale becomes the trait collection’s displayScale, and screen bounds become the window scene’s effective geometry or simply the size of the surrounding view.2 Automatic trait tracking softens the migration: the system tracks which trait properties are read inside layout and drawing methods like layoutSubviews and calls them again when a tracked trait changes.2
Two long-standing signals lose their layout meaning outright. The user-interface idiom “is no longer meaningful for any kind of layout decision,” because an iPhone app on iPad runs fully resizable while still reporting the phone idiom; and supported interface orientation becomes a preference the system ignores in resizable environments, with iPhone Mirroring always reporting portrait regardless of the window’s aspect ratio.2 The replacement for both is size classes. Games get an accommodation instead of an exemption: UIRequiresFullscreen is honored on iPhone in resizable environments starting in iOS 27, but its behavior changes to discrete resizing, transitioning the scene to a matching screen configuration on each resize so the game renders at full quality in the available space.2
Testing the whole matrix got cheaper in the same cycle: Device Hub and Xcode Previews gain an “enter resize mode” that drags device edges freely, with the session advising real-device checks on iPhone Mirroring and iPad afterward.2
The migration has an agent skill
The session closes by acknowledging the size of the ask and pointing at Xcode 27’s answer: a new app modernization skill with “a deep understanding of the adaptivity tasks” the session outlines.2 Asked to make an app more adaptable, the agent converts main-screen calls to trait-collection or scene-bounds checks with invalidation logic where needed, replaces interface-orientation checks with size classes, and “will even convert your app to use scene lifecycle.”2 For complex tasks it asks clarifying questions, and for work too large for one session it leaves comments marking what remains.2
The distribution story matches the rest of Apple’s skills push this WWDC: xcrun agent skills export produces markdown files you can import into other tools, the same mechanism covered in Xcode 27’s agent skills export.2 A migration enforced by the SDK, paired with a skill that performs the migration, is the clearest expression yet of how Apple expects breaking changes to be absorbed in the agent era: the platform raises the floor, and the tooling carries you over it.
FAQ
Will my existing app stop working on iOS 27?
Not from this requirement alone. The mandate applies to apps “built with the latest SDK.”1 Binaries already shipped with older SDKs keep launching on iOS 27. The failure occurs when you rebuild against the iOS 27 SDK without the scene-based life cycle in place.
How do I know if my app is affected?
Check two things.1 If your Info.plist lacks a UIApplicationSceneManifest key with a configuration, and your app delegate doesn’t implement the scene-configuration method, you’re on the app-delegate life cycle and the app fails to launch when built with the iOS 27 SDK. UIKit has logged a migration message for affected apps since iOS 18.4.1
Does this force me to support multiple windows?
No. Multiple-scene support stays optional, and Apple’s documentation advises weighing whether your user experience benefits before enabling it, since it may require making your data model scene-specific.1 The mandate only requires the scene-based life cycle itself: life-cycle events handled per scene rather than globally.
Can an agent do the migration?
Xcode 27 ships an app modernization skill that the session says can convert an app to the scene life cycle, rewrite main-screen references, and replace orientation checks with size classes, asking clarifying questions where the change is ambiguous and leaving comments for unfinished work.2 It exports to other tools via xcrun agent skills export.2 Treat its output like any agent-written migration: review the diff, especially around state restoration and window setup.
The mandate completes a theme this cycle: Apple enforcing migrations at the 27 boundary rather than suggesting them, after ImageCreator’s discontinuation showed the same staged escalation on a smaller surface. The agent-skill answer connects to the broader skills arc in Xcode 27 Ships Agent Skills You Can Export Anywhere. The full series hub is the Apple Ecosystem Series.
References
-
Apple, Transitioning to the UIKit scene-based life cycle, Apple Developer Documentation. Source for the requirement (“Beginning in iOS 27, iPadOS 27, Mac Catalyst 27, tvOS 27, and visionOS 27, apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch”), the staged warnings (UIKit logging a migration message starting in iOS 18.4, iPadOS 18.4, Mac Catalyst 18.4, tvOS 18.4, and visionOS 2.4, with the message changing in the 26 releases), the two-condition migration test (missing
UIApplicationSceneManifestkey or no scene-configuration delegate method), the property-list and dynamic-configuration migration routes including the General settings “Scene manifest” location and the session-role example, the storyboard-name note with automatic window-scene configuration, multiple-scene support remaining optional with the data-model caution, the app-versus-scene split of life-cycle responsibilities, the guidance to specifyUIWindowSceneobjects rather thanUISceneobjects, and the CarPlay scene type. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, WWDC 2026 session 278, Modernize your UIKit app. Official transcript; presented by Michael Ochs, engineering manager on the UI Frameworks team. Source for the requirement statement (“UIScene lifecycle is now required when building with the latest SDKs. Without it, your application will no longer launch”), iPhone Mirroring resizing and iPhone-only apps running fully resizable on iPad, the scene life cycle as “the basis for any adaptive app,” the main-screen guidance (dynamic access through the window scene,
displayScalevia the trait collection, effective geometry and surrounding-view size over screen bounds), automatic trait tracking across layout and drawing methods, the idiom and interface-orientation guidance including the always-portrait behavior in iPhone Mirroring and the move to size classes, theUIRequiresFullscreendiscrete-resizing behavior for games, the Bruce Nilo WWDC 2014 quote (“a device rotation is only an animated bounds change”) and its framing, the Device Hub and Xcode Previews resize mode, and the app modernization skill (deep understanding of the adaptivity tasks, converting main-screen calls with invalidation logic, replacing orientation checks with size classes, converting apps to the scene life cycle, clarifying questions, progress comments, and export throughxcrun agent skills export). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩