Things You Should Prepare for Now in Anticipation of Breaking Changes in iOS 27 / Xcode 27
注目の記事

Things You Should Prepare for Now in Anticipation of Breaking Changes in iOS 27 / Xcode 27

2026.03.20

This page has been translated by machine translation. View original

Currently working on iOS 26 compatibility, I'm concerned about the breaking changes already announced for iOS 27 (predicted release: September 2026). In particular, the mandatory implementation of Liquid Glass design and forced adoption of UIScene lifecycle risk preventing apps from launching if not addressed.

Apple has officially announced these changes in iOS 26 with a grace period. However, it would be too late to address them after iOS 27 is released. I believe we should understand the full picture early and plan the migration strategically.

This article summarizes what we should prepare now for the breaking changes in iOS 27, based on deprecated APIs in iOS 26 and Apple's official statements. Note that since iOS 27 is unreleased, much of this content contains speculation.

As detailed later about the predicted schedule, Xcode 27 builds are expected to become mandatory by April 2027, so time for preparation is limited.

Mandatory Liquid Glass Implementation

In iOS 26 / Xcode 26, Liquid Glass can be disabled by setting UIDesignRequiresCompatibility = true in Info.plist.

However, Apple explicitly stated in the WWDC25 UI Frameworks Group Lab that "this is a temporary measure and 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 rebuilt with Xcode 26, standard controls automatically render with the new design and materials. For teams needing time to adopt the new design, Xcode 26 provides an option to continue with the traditional design. However, this option is scheduled to be removed in the next major release.

This option is scheduled to be removed in the next major release

This suggests that in Xcode 27, this flag will be removed and Liquid Glass will be forcibly applied to all apps.

Major Components Affected

Component Main Changes
UINavigationBar Translucent glass material, glass backgrounds for bar buttons
UITabBar Floating above content, automatic minimization during scrolling
UIToolbar Items automatically grouped into glass clusters, increased spacing
UISegmentedControl Liquid Glass selection effect applied
UISearchBar Automatically moves near tab bar on iPhone

Issues in Non-Compatible Apps

Various problems have been reported in apps not adapted for Liquid Glass. Custom background colors interfere with glass effects, creating unintended appearances. Also, automatic insertion of UIDropShadowView by the system breaks existing layouts, and the floating tab bar changes the safeArea, causing misalignment of FABs and bottom sheets. Performance degradation is also observed on older devices.

Furthermore, even with UIDesignRequiresCompatibility = true set, the old style is not completely maintained, and minor issues like UISegmentedControl tap position problems have been reported.

Apps with custom navigation bars or tab bars with background colors are particularly affected. I strongly recommend rebuilding with Xcode 26 at the iOS 26 stage to check the automatically applied results.

  1. Rebuild with Xcode 26 to check automatically applied results
  2. Remove custom backgrounds to leverage system glass rendering
  3. Start with structural components like navigation and tabs
  4. Gradually adopt new APIs (.glassEffect(), UIGlassEffect, etc.) using if #available

Migration should be relatively easy for apps using standard UI components. Conversely, apps heavily using custom views will likely struggle with Liquid Glass adaptation.

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 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, and given Apple's explicit "next major release" statement, it can be considered almost certain.

Migration to the UIScene lifecycle has wide-ranging impacts, especially for legacy apps.

Apps with many AppDelegate-dependent processes, particularly those with multiple launch triggers such as Universal Links, custom URL schemes, push notifications, lock screen widgets, and shortcuts, will require broader testing, necessitating early action.

Main 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:) is not deprecated as of iOS 26, launchOptions becomes nil after adopting the Scene lifecycle.

Practical Migration Strategy

Many teams first migrate assuming single window operation with UIApplicationSupportsMultipleScenes = false. The strategy is to complete migration to the Scene lifecycle first, postponing multi-window support.

The following Tech Blogs are useful for actual migration cases, detailing approaches for single-window premise and potential pitfalls:

Related Article: Confirmation Items Regarding the Mandatory UIScene Lifecycle Support in iOS 27

Other Considerations

API and Framework Changes

  • SceneKit has been officially deprecated on all platforms in Xcode 26. The migration target is RealityKit, requiring substantial work for apps using it, so early migration planning is advisable.
  • UIScreen.main is also deprecated, requiring switching to access via windowScene.screen.
  • SwiftUI's actionSheet breaks in iOS 26, necessitating migration to confirmationDialog. See this article for details.

Privacy and Security

  • TLS 1.3 became the default in iOS 26, adopting quantum-safe encryption. This may affect communication with third-party SDKs or servers dependent on TLS 1.2 or earlier, so iOS 26 compatibility should 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 Supported Devices

  • Xcode 26 requires macOS Sequoia 15.6 or later. Xcode 26.4 and later require macOS Tahoe 26.2 or later.
  • iOS 26 discontinued support for A12 devices (iPhone XS/XR), and iOS 27 is expected to discontinue support for A13 devices (iPhone 11 series, SE 2nd generation) (unconfirmed).
  • The "Forced delay of software updates" setting in MDM policies is also being 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 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 iOS 27 SDK (Xcode 27)

These dates are predicted based on Apple's past release schedule patterns (not official announcements at the time of writing), but as they follow an annual tradition, they're likely to be fairly accurate. If you want to adopt Xcode 27 early, aim to have things in place by June.

Summary

Organizing predicted breaking changes in iOS 27 / Xcode 27 by priority:

Highest Priority (Risk of Launch Failure): Adopting the UIScene lifecycle. Without this, apps won't launch, so address this before other changes. Main tasks include creating SceneDelegate, adding UIApplicationSceneManifest to Info.plist, and migrating to UIWindow(windowScene:).

High Priority (UI Breaking Risk): Liquid Glass adaptation. 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 checking third-party SDK compatibility with iOS 26.

While iOS 27's official release is still ahead, given Apple's clear warnings about these changes, it's worth starting early. The UIScene lifecycle migration particularly has wide-ranging impacts, with implementation costs increasing the longer it's delayed. I hope this helps in planning your iOS 27 compatibility strategy.

Job Information: Classmethod is Recruiting iOS Engineers

The Starbucks Digital Technology department is recruiting engineers capable of iOS app development. We welcome applications from those who want to work with us, sharing information about new Xcode and iOS features in misc-ios and other forums!

https://careers.classmethod.jp/requirements/sbj-nativeapp-ios/

Additionally, we're recruiting iOS/Android lead engineers in the manufacturing sector. Let's talk about mobile app development together!

https://careers.classmethod.jp/requirements/mbt-mobile-lead-engineer/

Share this article