Get Your .NET MAUI App Ready for Xcode 27
Build with Xcode 27, launch on iOS 27, and the app can show its splash screen and then disappear with UIScene life cycle is required for apps built with this SDK. Gerald Versluis walks through the scene-lifecycle migration .NET MAUI apps need, including an agent skill that can apply it.
What you’ll learn
- Why a package update is not enough — .NET MAUI already supports scenes, but existing platform files are not rewritten when you update the workload. An older binary does not suddenly need this just because the phone updated
- The two-file change — a public
SceneDelegatederiving fromMauiUISceneDelegate, plus aUIApplicationSceneManifestwhose configuration name is__MAUI_DEFAULT_SCENE_CONFIGURATION__. Repeat it for Mac Catalyst and for every plist a shipping configuration can use - Versions to line up — .NET MAUI 10.0.110 or higher so scene-side App Actions and
WebAuthenticatorforwarding come with the launch fix, the Xcode 27.0 workload, and minimum OS versions of iOS 15 and Mac Catalyst 17 - Callbacks that stop firing on the app delegate — activation, background, URL, and user-activity events move to the scene equivalents.
FinishedLaunchingstill runs, butAppDelegate.Windowstays null because the window is created later - Cold start and shortcuts — URLs that launch the app arrive on
SceneWillConnectbefore the window exists, so navigation has to wait. A customPerformActionForShortcutItemhandler must call its completion callback exactly once - The agent path —
Microsoft.Maui.Cli0.1.0-preview.13 or later can install themaui-xcode27-migrationskill. The skill inspects the toolchain and migrates; you still review the diff and test the flows it can change
Read the post before you ship an Xcode 27 build, and test cold launch, auth, links, notification taps, and shortcuts with the app both running and fully closed.