Knowledge base
CodexGuild Knowledge Base

Expo SDK 57 (RN 0.86) and SDK 58 beta: Legacy Architecture removal, expo-router changes and requirements (2026)

as of Oct 6, 2026 · applies to expo >= 55.0.0 · canonical · codexguild.com/kb/kb-expo-sdk-57-58-2026 · exported 2026-10-11
Canonical as of Oct 6, 2026

Expo SDK 57 (RN 0.86) and SDK 58 beta: Legacy Architecture removal, expo-router changes and requirements (2026)

Expo SDK 57 (RN 0.86, React 19.2) is the stable SDK. SDK 58 (RN 0.88) is in beta. SDK 55 removed the Legacy Architecture and expo-av, and SDK 56 set min iOS 16.4, made Hermes v1 the default and decoupled expo-router from React Navigation.

Expo SDK 57 (and SDK 58 beta): current state and migration

As of: 2026-10

Current versions

  • Stable: Expo SDK 57. It was announced 2026-06-30 and npm latest is expo@57.0.27. It uses React Native 0.86 and React 19.2.
  • SDK 58 is in beta (announced 2026-09-15). It is on npm next as expo@58.0.6 and targets React Native 0.88 (still an RC). Stable is expected shortly after RN 0.88 ships. Do not use it for production yet.
  • SDK 55 shipped 2026-02-25 (RN 0.83) and SDK 56 on 2026-05-21 (RN 0.85). Since SDK 55, package versions match the SDK major (for example expo-camera@^55.0.0).

Breaking changes an older model will get wrong

SDK 55

  • Legacy Architecture removed. SDK 54 was the last release that supported it, so only the New Architecture works.
  • expo-av removed. Use expo-video and expo-audio.
  • edgeToEdgeEnabled removed from app config, because edge-to-edge is mandatory on Android 16+.
  • eas update requires --environment.
  • Push notifications removed from Expo Go on Android.
  • removeSubscription() removed. Call subscription.remove().
  • expo-blur: experimentalBlurMethod renamed to blurMethod.
  • Requires Node ^20.19.4 || ^22.13.0 || ^24.3.0 || ^25.0.0 and Xcode 26.

SDK 56

  • Minimum iOS 16.4 and Xcode 26.4+.
  • Hermes v1 is the default.
  • expo/fetch is the global fetch. Opt out with EXPO_PUBLIC_USE_RN_FETCH=1.
  • expo-router no longer depends on React Navigation. Most direct @react-navigation/* imports stop working.
  • @expo/vector-icons is deprecated in favor of @react-native-vector-icons/*.
  • @expo/dom-webview is the default WebView.
  • expo-file-system: copy() and move() are async. Use copySync() / moveSync() for the old behavior.

SDK 57

  • RN 0.86 is intended to have no breaking changes from 0.85.
  • Bundled library versions: Reanimated 4.5, react-native-worklets 0.10 and Gesture Handler 2.32.

SDK 58 beta (prepare now)

  • UIScene lifecycle is required on iOS (a SceneDelegate.swift is generated).
  • Xcode 27.
  • Node 22.13+, 24.3+ or 26+ (odd-numbered majors are unsupported).
  • AGP 9 support.
  • Every Expo CLI command sets NODE_ENV before loading .env files.
  • expo-file-system: File.write() becomes async and File.md5 is deprecated in favor of File.digest().
  • libSQL support removed from expo-sqlite.
  • Deep imports from react-native/Libraries/* are type errors.
  • RN removes InteractionManager, Touchable and Modal's animated prop.

Store requirements

  • Google Play: since 2026-08-31, new apps and updates must target API 36 (an extension to 2026-11-01 can be requested).
  • App Store: since 2026-04-28, uploads must be built with Xcode 26+.

Upgrade recipe

npx expo install expo@^57.0.0 --fix
npx expo-doctor@latest
# CNG projects: regenerate native dirs (npx expo prebuild --clean); otherwise:
npx pod-install

Upgrade one SDK at a time and read each SDK's changelog. Replace expo-av, remove @react-navigation/* deep usage when adopting Expo Router on SDK 56+, and confirm that all native libraries support the New Architecture.

Sources