u/Rtzon

Expo v57 has been released
▲ 141 r/expo+1 crossposts

Expo v57 has been released

https://expo.dev/changelog/sdk-57

Today we're announcing the release of Expo SDK 57. This is a small, focused release: it brings React Native 0.86 to Expo. We intend for this to be the easiest Expo SDK upgrade you've ever made. It represents a possible shift towards a new Expo SDK release cadence that could provide you with simple non-breaking upgrades in between more significant releases.

React Native 0.86

SDK 57 upgrades React Native from 0.85 to 0.86. The React version is unchanged from SDK 56 — both SDK 56 and SDK 57 use React 19.2. React Native 0.86 is intended to have no breaking changes from 0.85. To decide whether it's worth upgrading your app, refer to the React Native 0.86 release notes for the full picture.

Highlights include: fixes and improvements to edge-to-edge support on Androidlight/dark mode emulation in React Native DevTools, and several rendering, layout, and animation-related fixes.

Exploring a new Expo SDK release cadence

For several years, Expo SDK has seen major releases three times per year. We found that this cadence provided a good balance between stability for app developers and freedom for our team to ship significant new features and improvements. It also helped to reduce thrash in Expo Go.

During the same period, React Native has been releasing six times per year. The React Native team prioritized shipping often in order to incrementally roll out the New Architecture, a new React Native DevTools experience, Hermes V1, and more. Each Expo SDK release would target a single React Native version, and for versions that were not targeted, developers could use canary releases if needed. However, now that these massive changes to React Native have shipped, the focus has shifted towards stability.

The new release model that React Native is moving towards will aim to provide a release with "no user-facing breaking changes" approximately every second release. The recently released 0.86 is the second of these non-breaking releases. At Expo, the fact that these releases are intended to be non-breaking has prompted us to revisit our release cadence. If we can provide these releases to developers almost immediately, as optional upgrades, with little effort required for the app developer beyond running npx expo install expo@latest --fix, then we think we should do it. So, we are exploring that approach with SDK 57.

Why not include React Native 0.86 in SDK 56 if it is non-breaking?

This is a good question! We considered bumping from 0.85 to 0.86 in SDK 56, and ultimately decided that the set of changes between the versions was too significant for an app developer to pull in with a routine npx expo install --fixThere are 601 commits touching 1,552 files between 0.85.0 and 0.86.0, and we believe that the decision to pull those into your app should be intentional. Even though these commits are intended to not cause breaking changes, we think it's best to err on the side of being conservative.

Additionally, moving this bump to a new SDK version allows us on the Expo team to roll out small changes that wouldn't be appropriate to ship to an existing stable release, but that we think are genuinely useful for users. The following list includes some of those changes that are worth calling out.

Does this new cadence impact the Expo SDK maintenance window?

SDK releases will continue to have a lifetime of approximately one year. We may revisit the details of this policy in the future. What this means today is that Expo SDK 54 (September 2025) will receive critical fixes until the next SDK release (September or October 2026).

Will there be a new Expo Go version on the App Store and Play Store?

We'd like to release a new version for SDK 57, but we're still waiting on approval. Expo Go for SDK 57 is available with eas go for iOS devices, and through Expo CLI for Android devices/emulators and iOS simulators (learn more).

Other highlights

While SDK 57 is primarily about the React Native 0.86 upgrade, a few other improvements landed alongside it:

  • expo-dev-client: the iOS launcher includes a new setting to choose between auto-launching your most recent project or showing the launcher (#47131), allowing you to override the configuration set with the config plugin.
  • expo prebuild: now clears and regenerates the native android and ios directories by default; pass --no-clean to apply changes to the existing folders instead (#47209).
  • expo-image: added writeToCacheAsync and readFromCacheAsync to seed and read the image cache by cache key (#46620).
  • expo-routerStack.Toolbar.Badge is now supported in header left and right placements and on toolbar menu icons on Android (#46537#47276).
  • expo-navigation-barsetStyle and setHidden now apply to React Native <Modal> windows on Android (#46491).
  • Bump animation and gesture libraries: SDK 57 bundles newer versions of react-native-reanimated (4.3 to 4.5), react-native-worklets (0.8 to 0.10), and react-native-gesture-handler (2.31 to 2.32).

Known regressions

u/Rtzon — 6 days ago

How do I debug weird memory leaks?

So I have a super weird issue in my React Native app where probably 50 to 60% of the time my haptics and my camera in the app don't work, and I have no idea why. And then I also notice that sometimes when I leave the app open in the background and then come back to it, my haptics stopped working and my camera stopped working.

I have no idea how to debug this or what's going on. I've had checks across the app for potential common causes of memory leaks, and it seems to be fine. So I'm not really sure if this is a memory leak because I do run into this problem on app startup sometimes where it seems like some of these native modules are not really being initialized.

The only thing is I have no idea how to debug this or how to fix it. It's super weird, super annoying. I don't know if it's something to do with contention of the native bridge somehow if I'm making too much work on app startup. But yeah, I'm just curious on how you guys would debug something like this.

reddit.com
u/Rtzon — 10 days ago