
Preparations you should make now for breaking changes in iOS 27 / Xcode 27
This page has been translated by machine translation. View original
Currently, we're working on iOS 26 compatibility, but I'm already concerned about the breaking changes announced for iOS 27 (predicted for September 2026). Particularly concerning are the mandatory implementation of Liquid Glass design and forced adoption of UIScene lifecycle, which risk preventing apps from even launching if not addressed.
Apple has officially announced these changes in iOS 26, providing a grace period. However, it would be too late to hurry implementation after iOS 27 is released. I believe we should understand the full picture now and plan the migration strategically.
This article summarizes what we should prepare for iOS 27's breaking changes, based on deprecated APIs in iOS 26 and Apple's official statements. Please note that since iOS 27 has not been released yet, much of this content includes speculation.
The predicted schedule details will be discussed later, but Xcode 27 builds are expected to become mandatory by April 2027, giving us limited preparation time.
Mandatory Liquid Glass Implementation
In iOS 26 / Xcode 26, you can disable Liquid Glass by setting UIDesignRequiresCompatibility = true in Info.plist.
However, in the WWDC25 UI Frameworks Group Lab, Apple clearly stated that "this is a temporary measure that will be removed in the next major release." The session explained:
All UI frameworks fully support Liquid Glass. Whether you use SwiftUI, UIKit, or AppKit, your app can benefit from this new design.
When rebuilding with Xcode 26, standard controls automatically render with the new design and materials. For teams that need time to adopt the new design, Xcode 26 offers an option to continue using the traditional design. However, we plan to remove this option in the next major release.

This suggests that in Xcode 27, this flag will be removed, and Liquid Glass will be mandatory for all apps.
Main Components Affected
| Component | Key Changes |
|---|---|
| UINavigationBar | Translucent glass material, glass background for bar buttons |
| UITabBar | Floats above content, auto-minimizes when scrolling |
| UIToolbar | Items automatically grouped into glass clusters, increased spacing |
| UISegmentedControl | Liquid Glass selection effect applied |
| UISearchBar | Automatically moves near tab bar on iPhone |
Problems in Non-Compatible Apps
Apps not compatible with Liquid Glass have reported various issues. First, custom background colors interfere with glass effects, resulting in unintended appearances. Also, the automatic insertion of UIDropShadowView by the system can break existing layouts, and the floating tab bar changes the safeArea, causing misaligned FABs and bottom sheets. Performance degradation is also observed on older devices.
Furthermore, even with UIDesignRequiresCompatibility = true, the old style isn't completely maintained, with minor issues like tap position misalignment in UISegmentedControl being reported.
Apps with custom navigation bars or tab bars with background colors will be particularly affected. I strongly recommend rebuilding with Xcode 26 now to check the automatically applied results.
Recommended Migration Steps
- Rebuild with Xcode 26 to check automatically applied results
- Remove custom backgrounds to leverage the system's glass rendering
- Start with structural parts like navigation and tabs
- Gradually adopt new APIs (
.glassEffect(),UIGlassEffect, etc.) usingif #available
Migration should be relatively easy for apps using standard UI components. Conversely, apps heavily using custom views will likely find Liquid Glass adaptation challenging.
Related Sessions: Session 219 "Meet Liquid Glass", Session 284 "Build a UIKit app with the new design", Session 323 "Build a SwiftUI app with the new design"
Mandatory UIScene Lifecycle
Apple Tech Note TN3187 clearly states that "in the next major release, the UIScene lifecycle will be mandatory when building with the latest SDK, and apps will not launch without adopting it." This is expected to be implemented in iOS 27, but given Apple's explicit "next major release" statement, we can consider it almost certain.
Migrating to the UIScene lifecycle will have wide-ranging impacts, especially for legacy apps.
Apps heavily dependent on AppDelegate processing, particularly those with multiple launch triggers like Universal Links, custom URL schemes, push notifications, lock screen widgets, or shortcuts, will have a broader scope of functionality to verify, necessitating early action.
Key Methods Deprecated in iOS 26
| Deprecated (AppDelegate) | Migration Target (SceneDelegate) |
|---|---|
applicationDidBecomeActive(_:) |
sceneDidBecomeActive(_:) |
applicationWillResignActive(_:) |
sceneWillResignActive(_:) |
applicationDidEnterBackground(_:) |
sceneDidEnterBackground(_:) |
applicationWillEnterForeground(_:) |
sceneWillEnterForeground(_:) |
application(_:open:options:) |
scene(_:openURLContexts:) |
UIWindow.init(frame:) is also deprecated, requiring migration to UIWindow(windowScene:). Note that while application(_:didFinishLaunchingWithOptions:) isn't deprecated as of iOS 26, launchOptions will be nil after adopting the Scene lifecycle.
Practical Migration Strategy
Many teams are first migrating with UIApplicationSupportsMultipleScenes = false for a single-window migration. The strategy is to complete Scene lifecycle migration first and address multi-window support later.
For actual migration examples, the following Tech Blogs are useful references, detailing single-window approaches and potential pitfalls:
Related Article: Confirmation Items Regarding the Mandatory UIScene Lifecycle Support in iOS 27
Other Considerations
API and Framework Changes
- SceneKit was officially deprecated for all platforms in Xcode 26. The migration path is to RealityKit, which will require significant effort for apps using SceneKit, so planning early is advisable.
UIScreen.mainis deprecated, requiring a switch towindowScene.screenaccess.- SwiftUI's
actionSheetbreaks in iOS 26, requiring migration toconfirmationDialog. For details, see this article.
Privacy and Security
- In iOS 26, TLS 1.3 became the default, incorporating quantum-safe encryption. Communications with third-party SDKs or servers dependent on TLS 1.2 or earlier may be affected, so iOS 26 compatibility should definitely be verified in advance.
- The DeclaredAgeRange framework (added in iOS 26.0) was introduced as a privacy-protecting age verification API in response to Texas state law and Australian legislation. Apps providing services in these regions will likely need to comply.
Development Environment and Device Support
- Xcode 26 requires macOS Sequoia 15.6 or later. Xcode 26.4 and later require macOS Tahoe 26.2 or later.
- iOS 26 dropped support for A12 devices (iPhone XS/XR), and iOS 27 is predicted to drop support for A13 devices (iPhone 11 series, SE 2nd generation) (unconfirmed).
- The MDM policy setting for "forced delay of software updates" will also be discontinued.
App Store Submission Requirements and Deadlines
Finally, let's organize the App Store submission requirements and deadlines.
| Deadline | Requirement |
|---|---|
| April 28, 2026 | All App Store submissions must be built with the iOS 26 SDK (Xcode 26) |
| June 2026 (predicted) | WWDC 2026 — Xcode 27 beta 1 release |
| September 2026 (predicted) | Xcode 27 / iOS 27 official release. Flag removal and UIScene enforcement implemented |
| Mid-April 2027 (predicted) | All App Store submissions must be built with the iOS 27 SDK (Xcode 27) |
Summary
Let's organize the predicted breaking changes in iOS 27 / Xcode 27 by priority.
Highest Priority (Risk of Launch Failure): UIScene lifecycle adoption. Without it, apps may fail to launch, so this should be addressed before other changes. Main tasks include creating SceneDelegate, adding UIApplicationSceneManifest to Info.plist, and migrating to UIWindow(windowScene:).
High Priority (UI Breakdown Risk): Liquid Glass compatibility. Focus on removing custom navigation and tab bar background colors and addressing safeArea changes due to floating tab bars.
Medium Priority: Planning SceneKit to RealityKit migration, replacing UIScreen.main, and verifying third-party SDK compatibility with iOS 26.
While the official release of iOS 27 is still some time away, given Apple's clear warnings about these changes, there's value in starting early. The UIScene lifecycle migration especially has wide-ranging impacts, with implementation costs increasing the longer it's postponed. I hope this helps in planning your iOS 27 compatibility strategy.