Copilot skill for upgrading .NET MAUI iOS and Mac Catalyst apps to Xcode 27 A developer published an MIT-licensed Copilot skill, xcode-27-maui-upgrade, that migrates .NET MAUI iOS and Mac Catalyst apps to Apple's scene-based UIKit lifecycle for Xcode 27. The skill walks through inspecting workload sets and Xcode compatibility, diagnosing NoSceneLifecycleAdoption launch crashes, and adding a registered SceneDelegate plus a UIApplicationSceneManifest to each app head's Info.plist. | name | xcode-27-maui-upgrade | |---|---| | description | Upgrade .NET MAUI iOS and Mac Catalyst apps for Xcode 27 and Apple's scene-based lifecycle. Use when migrating Apple-platform builds, investigating NoSceneLifecycleAdoption launch crashes, or aligning .NET workloads with Xcode. | | license | MIT | Use this skill to migrate existing .NET MAUI apps to Apple's scene-based UIKit lifecycle and verify their Xcode/.NET build configuration. If the user asks for an explanation only, diagnose and explain without editing; otherwise, implement the migration. 1. Read the repository's applicable instructions and inspect the app's Apple target frameworks, MAUI package/workload versions, AppDelegate , entry point, Info.plist files, and CI workflows. 2. Inspect the crash log before changing lifecycle code. A launch trap in UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption block invoke or a NoSceneLifecycleAdoption message indicates that the app has not adopted scene lifecycle. Do not apply this migration to unrelated crashes. 3. Check whether each iOS and Mac Catalyst app head already has both a registered SceneDelegate and a UIApplicationSceneManifest . A manifest without its delegate, or a delegate whose registered name differs from the manifest, is incomplete. - Check dotnet --info , dotnet workload --version , dotnet workload list , and xcodebuild -version . Use dotnet workload --version to identify the workload set selected by the installed SDK; dotnet workload list shows the installed workloads. - When evaluating an upgrade, run dotnet workload search version --format json --take 1 to discover the latest released workload-set candidate for the SDK feature band. This reports candidates, not the active workload set. To inspect a specific candidate's manifest versions, run dotnet workload search version