For developers · Checked 1 October 2026

The UIScene life cycle is required in iOS 27

Short answer: starting with iOS 27, iPadOS 27, Mac Catalyst 27, tvOS 27 and visionOS 27, apps built with the latest SDK, which means Xcode 27, must adopt the scene-based life cycle or they fail to launch. If your Info.plist has no UIApplicationSceneManifest and your app delegate doesn’t implement application(_:configurationForConnecting:options:), you need to migrate. Only adopting scenes is required; supporting multiple windows is optional. Flutter 3.41+ and Expo SDK 58 migrate most projects for you.

Where life-cycle code moves

From Apple’s TN3187 «Migrating to the UIKit scene-based life cycle».

UIApplicationDelegateUISceneDelegate
applicationDidBecomeActive(_:)sceneDidBecomeActive(_:)
applicationWillResignActive(_:)sceneWillResignActive(_:)
applicationDidEnterBackground(_:)sceneDidEnterBackground(_:)
applicationWillEnterForeground(_:)sceneWillEnterForeground(_:)
Window created in application(_:didFinishLaunchingWithOptions:)Window created in scene(_:willConnectTo:options:)

Is your app affected

Apple says to migrate if either is true: the UIApplicationSceneManifest key is missing from your information property list or has no configurations, or your app delegate doesn’t implement application(_:configurationForConnecting:options:). UIKit has logged a warning about this since iOS 18.4 and a stronger one in iOS 26, so check your console. The requirement applies to apps built with the iOS 27 SDK, which Apple says App Store uploads must use starting April 2027; see Xcode 27 release and requirements. One developer report on Stack Overflow shows the failure as a launch-time runtime issue mentioning _UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption.

Migrating a UIKit app

In Xcode, select your app target, open General, and choose Scene manifest under Deployment Info, which adds a UIApplicationSceneManifest entry. If your root view controller comes from a storyboard, put the storyboard name in the scene configuration and UIKit sets up the window. If you build UI in code, create a SceneDelegate that conforms to UIWindowSceneDelegate and create the UIWindow in scene(_:willConnectTo:options:). Then move UI life-cycle code from the app delegate to the scene delegate as in the table; the app delegate keeps process-level events. Apps that need different scenes based on user activity implement application(_:configurationForConnecting:options:) instead. CarPlay apps use CPTemplateApplicationScene. Test in Split View, Slide Over and Stage Manager on iPad afterwards.

Flutter

Flutter’s docs say Flutter apps built with Xcode 27 that don’t adopt UIScene fail on startup. Since Flutter 3.41, UIScene is the default and an unmodified AppDelegate is migrated automatically when you run flutter run or flutter build ios; the CLI prints «Finished migration to UIScene lifecycle». With a custom AppDelegate or an older Flutter, migrate by hand: conform the app delegate to FlutterImplicitEngineDelegate and move plugin registration into didInitializeImplicitFlutterEngine. Plugins that use application life-cycle events and add-to-app setups have their own steps.

Expo and React Native

In Expo SDK 58, npx expo prebuild generates SceneDelegate.swift and the scene manifest, and Expo forwards URL, user activity, Handoff and quick action events so config plugins keep working. If you manage the ios folder by hand or have a bare React Native app, apply Apple’s steps above to the native project, or follow Expo’s migration guide for app delegate overrides.

Where Censuus fits

An app that launches on the new OS keeps its users; being found brings new ones. Censuus ranks apps by the visits they draw, and adding your app is free through the List my app form. Placement comes from traffic and sponsorship: apps climb on the visits they draw, and a sponsor can pay to rise higher.

Frequently asked questions

Is the UIScene life cycle required in iOS 27?

Yes, for apps built with the latest SDK. Apple’s iOS 27 release notes say such apps must adopt the scene-based life cycle or they fail to launch.

Do I have to support multiple windows?

No. Apple requires only adoption of the scene life cycle; supporting multiple scenes is optional.

Why does my app crash on launch after updating to Xcode 27?

One cause Apple documents is a missing scene-based life cycle: if Info.plist has no UIApplicationSceneManifest and the app delegate doesn’t provide scene configurations, apps built with the iOS 27 SDK fail to launch.

Does Flutter handle UIScene automatically?

From Flutter 3.41, yes for projects with an unmodified AppDelegate: flutter run or flutter build ios migrates them. Custom AppDelegates need manual changes.

Does Expo handle UIScene for iOS 27?

Yes. In Expo SDK 58, npx expo prebuild generates SceneDelegate.swift and the scene manifest entry in Info.plist.

Guides for app developers

Put your app in the ranking

Censuus ranks apps by the visits they draw and by sponsorship, no bots. Listing is free; sponsorship raises placement.