unstale

npm / expo

expo

What changed in expo 58, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

3 breaking1 new APIs and options7 behavior and defaults4 tooling10 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

expo 5825 changes

Breaking changes 3

  • Unsupported module setups now fail the sync with a specific error instead of producing a broken build.

    58.0.2release notes

  • Removes the Expo polyfill now that React Native supports AbortSignal.any.

    58.0.1release notes

  • Removes the Expo polyfill now that React Native supports AbortSignal.timeout.

    58.0.1release notes

New APIs and options 1

  • Adds an overridable property to ExpoAppSceneDelegate for passing root properties to the app after React Native moved startup into scene(_:willConnectTo:).

    58.0.4release notes

Behavior and default changes 7

  • @expo/metro was promoted to stable for SDK 58.

    58.0.10release notes

  • On iOS, native module classes annotated with @ExpoModule are automatically added to the generated modules provider without being listed in expo-module.config.json.

    58.0.8release notes

  • Experimental granular bundle splitting is available for production exports with async routes.

    58.0.8release notes

  • Debug builds on Android 17 request this permission before loading the app so the dev server can be reached without expo-dev-client.

    58.0.0release notes

  • R8 minification is enabled by default in the bare template.

    58.0.0release notes

  • Under the UIKit scene life cycle, Handoff preparation, update, and failure events are forwarded to app delegate subscribers.

    58.0.0release notes

  • The SwiftPM plugin now accepts prebuilt-framework tarballs that bundle SwiftPM dependency XCFrameworks alongside the product.

    58.0.0release notes

Tooling 4

  • The iOS SwiftPM autolinking plugin now takes module identity, deployment target, and dependencies from prebuilt-metadata.

    58.0.1release notes

  • The SwiftPM plugin's generated manifest now includes module build settings, the declared iOS deployment floor, PrivacyInfo.xcprivacy, and RCT_NEW_ARCH_ENABLED for ExpoObjC.

    58.0.0release notes

  • A preview plugin lets Expo modules participate in the react-native spm autolinking graph, including precompiled xcframeworks, source packages, and the generated ExpoModulesProvider.

    58.0.0release notes

  • The plugin now contributes build-time script phases for Expo modules that need a build step under SwiftPM.

    58.0.0release notes

Fixes and other changes 10

  • Added the missing exports entry for expo/build/winter.

    58.0.10release notes

  • Stops overriding web style types already declared by React Native, avoiding conflicting type definitions.

    58.0.7release notes

  • Restores resolution of the bundled template so expo prebuild can use it instead of falling back to downloading one from npm.

    58.0.4release notes

  • Fixes an assertion at launch with react-native-macos 0.83 caused by EXReactRootViewFactory not overriding the method called by RCTReactNativeFactory.

    58.0.2release notes

  • The SwiftPM autolinking plugin declares each module's package dependencies and honors autolinkWhen conditions.

    58.0.2release notes

  • Fixes animated GIF and WebP images showing only their first frame in Android release builds minified with R8.

    58.0.1release notes

  • Fixes modules using Expo Swift macros failing to build from source with the SwiftPM autolinking plugin.

    58.0.1release notes

  • The SwiftPM plugin now generates an ExpoModulesProvider that reports app groups and registers inline modules.

    58.0.0release notes

  • Server bundles stub requestAnimationFrame to prevent crashes during server rendering and expo export when Reanimated is imported.

    58.0.0release notes

  • Deep links delivered to a running iOS app now emit JavaScript url events under the UIKit scene life cycle.

    58.0.0release notes