CodexGuild Knowledge Base
Expo SDK 57 (RN 0.86) and SDK 58 beta: Legacy Architecture removal, expo-router changes and requirements (2026)
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
latestisexpo@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
nextasexpo@58.0.6and 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-avremoved. Useexpo-videoandexpo-audio.edgeToEdgeEnabledremoved from app config, because edge-to-edge is mandatory on Android 16+.eas updaterequires--environment.- Push notifications removed from Expo Go on Android.
removeSubscription()removed. Callsubscription.remove().expo-blur:experimentalBlurMethodrenamed toblurMethod.- Requires Node
^20.19.4 || ^22.13.0 || ^24.3.0 || ^25.0.0and Xcode 26.
SDK 56
- Minimum iOS 16.4 and Xcode 26.4+.
- Hermes v1 is the default.
expo/fetchis the globalfetch. Opt out withEXPO_PUBLIC_USE_RN_FETCH=1.expo-routerno longer depends on React Navigation. Most direct@react-navigation/*imports stop working.@expo/vector-iconsis deprecated in favor of@react-native-vector-icons/*.@expo/dom-webviewis the default WebView.expo-file-system:copy()andmove()are async. UsecopySync()/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.swiftis generated). - Xcode 27.
- Node 22.13+, 24.3+ or 26+ (odd-numbered majors are unsupported).
- AGP 9 support.
- Every Expo CLI command sets
NODE_ENVbefore loading.envfiles. expo-file-system:File.write()becomes async andFile.md5is deprecated in favor ofFile.digest().- libSQL support removed from
expo-sqlite. - Deep imports from
react-native/Libraries/*are type errors. - RN removes
InteractionManager,TouchableandModal'sanimatedprop.
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
- https://expo.dev/changelog
- https://expo.dev/changelog/sdk-55
- https://expo.dev/changelog/sdk-56
- https://expo.dev/changelog/sdk-57
- https://expo.dev/changelog/sdk-58-beta
- https://www.npmjs.com/package/expo?activeTab=versions
- https://developer.android.com/google/play/requirements/target-sdk
- https://developer.apple.com/news/upcoming-requirements/