iOS 27 SDK: 3 Major Requirements That Might Break Your App
Mandates, not just deprecations.

Search for a command to run...
Mandates, not just deprecations.

I think UIApplicationSceneManifest and SceneDelegate are required only for UIKit-based apps
While working on large git-enabled projects in teams, merge conflicts can be the biggest nightmare and quite a challenging task, and my team is not exempt from this challenge. The Problem The case for Xcode projects regarding merge conflicts is quite...

Coming in Swift 5.9, package will be a new access modifier in the language. The Swift team at Apple approved the Swift Evaluation proposal SE-0386 which includes adding a new access modifier called package to allow symbols from being accessed inside ...

In case you really care about your apps' security.

Life is full of excitement and surprises, so does whatever journey you're in. During my iOS development journey, I have learned so much exciting stuff that I am always glad to get to know them. So, I would like to share them with you. It doesn't matt...

Apple introduced a number of SDK-enforced mandates with the iOS 27 SDK (Xcode 27). Apps built with the new SDK that don’t comply will either fail to launch or get rejected during App Store submission.
Here are the three most important ones you should address this summer.
Remember last year when you built with iOS 26 SDK and saw this in the debugger?
UIScene lifecycle will soon be required. Failure to adopt will result in an assert in the future.
Yeah… that future is here. Now, if you build with Xcode 27 and haven’t migrated to scenes, your app just crashes on launch.
According to Apple’s TN3187, starting with iOS 27:
Apps built with the latest SDK must adopt the scene-based lifecycle — otherwise they won’t launch.
To address this requirement, your Info.plist must contain the UIApplicationSceneManifest property and a proper SceneDelegate.swift implementation with the scene(_:willConnectTo:options:) method to initiate your app in instead of in AppDelegate.
They already provided a fantastic in-depth technical article for migrating it.
Apple also mentioned this during the Modernize Your UIKit App session at WWDC 26. I would fix this one first because it's quite a major blocker.
iOS 27 comes with the new ITMS-90870 App Store Connect rejection code which enforces developers to define their apps' launch screen in the Info.plist manifest.
ITMS-90870: Missing launch screen. Starting with the iOS 27 release this fall, apps built with the iOS 27 SDK or later must provide a launch screen using an Xcode storyboard or UILaunchScreen.
App Store Connect now checks for at least one of these keys in your Info.plist:
The good news? Most projects created in the last few years already have them. Older or migrated projects are the ones that usually get hit.
It's always a good idea to validate it in order to avoid facing any release blockers later this fall.
Last year Apple introduced Liquid Glass — their new system-wide design language. During the iOS 26 cycle, you could temporarily opt out by adding the following property to your Info.plist:
<key>UIDesignRequiresCompatibility</key>
<true/>
That grace period is now over. In iOS 27 and Xcode 27, the UIDesignRequiresCompatibility flag is completely ignored. Liquid Glass will be applied to your app automatically you want it or not.
If your app uses a lot of custom UIKit styling (especially navigation bars, tab bars, backgrounds, or heavy appearance customizations), things may look quite different on iOS 27. Some layouts might even break slightly due to the new safe area behavior and floating UI elements.
Start testing your app on the iOS 27 simulator this summer and pay special attention to navigation and tab bars, scroll views with translucent headers, and custom views.
These three changes — UIScene, the new launch screen requirement, and Liquid Glass — are the biggest SDK-level mandates Apple has pushed in a while. They’re not optional if you’re building with Xcode 27.
The good news is that none of them are especially complicated once you sit down with them. It's a good idea to spend some time this summer tackling these:
Get UIScene working first (it’s the one that crashes your app)
Clean up your launch screen
Test how Liquid Glass looks on your UI
Do it early and you’ll avoid stressful crunch time when Apple starts enforcing the deadlines this fall.
If you’re maintaining an older app or just starting a new one, now is the perfect time to modernize. Good luck and happy shipping!