Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Xcode 27 won’t launch 93% of React Native apps: the UIScene change, and the libraries that crash after it

Description and use

Xcode 27 enforces the UIKit scene life cycle, causing 93 % of React Native and Expo apps to crash at launch. Upgrading to React Native 0.88 or Expo SDK 58, patching libraries that access AppDelegate.window, and forwarding URLs in the SceneDelegate fixes the issue.

Problem

Apps built with Xcode 27 (iOS 27 SDK) fail to launch if they have not adopted the UIKit scene life cycle, causing crashes in many React Native and Expo projects.

Outcome

After adopting scenes, updating libraries, and forwarding URLs, the 93% of apps that previously crashed now launch successfully under Xcode 27.

Workflow

  • 1. Verify scene adoption by checking Info.plist for UIApplicationSceneManifest or AppDelegate implementation of application(_:configurationForConnecting:options:).
  • 2. For Expo, enable scene support in expo-build-properties or upgrade to SDK 58. For React Native, upgrade to 0.88 or later.
  • 3. Identify dependencies that access AppDelegate.window (e.g., react‑native‑blob‑util, @react-native-firebase/messaging, react‑native-google‑mobile‑ads).
  • 4. Apply patches or update libraries to use RCTPresentedViewController or RCTKeyWindow.
  • 5. Forward URL and user activity events from the scene delegate to RCTLinkingManager.
  • 6. Build with Xcode 27 before April 2027 and test launch, pickers, ads, and deep links from a cold start.
  • 7. Run npx nativekeel to check scene adoption, library crashes, and URL handler placement.

Evidence

628 React Native and Expo apps with an iOS target; 583 (93%) not on the scene life cycle yet

Source

Application failed to launch: UIScene life cycle is required for apps built with this SDK.

Source

react-native-blob-util#498

Source

react-native-google-mobile-ads#911

Source

  • Record date: 2026-10-11T10:56:01.694Z