Expo SDK 58, the toolkit for building iOS and Android apps with React Native, is out. These are five changes from its release notes to check before you upgrade.
Expo is a toolkit for building iOS and Android apps with React Native. The expo package on npm has 10,273,164 weekly downloads.
Expo SDK 58 came out on October 15. It moves React Native to 0.88 and brings new features such as iOS 27 support and a wider Expo UI. The release notes also list a long set of changes that can stop an existing app from running as before. Here are five worth reading before you type the upgrade command.

Image: Expo changelog
SDK 58 uses the UIKit scene-based life cycle, so running prebuild now generates a SceneDelegate.swift. If your team edits AppDelegate.swift by hand or manages the ios folder manually, you need to move that code by following the scene life cycle migration guide in the notes.
If you do not touch the native folders and use Continuous Native Generation instead, the notes say to delete the android and ios folders left over from an earlier SDK and let them be generated again.
R8, the tool that shrinks code, now applies to Android release builds by default. An app that ran fine without it may fail to find a class only in the release build. The release notes list this as a breaking change.
If your schedule is to bump the SDK right before a store submission and you have never tested a release build, this is the first place you may get caught.
File.write() in expo-file-system is now asynchronous. Code that expects it to finish at once and reads the file on the next line may find it empty. If you need the old behavior, the notes say to use File.writeSync().
The same notes recommend moving from File.md5 to File.digest(). The old name still works, but it is going away.

Image: expo.dev
expo-sqlite no longer supports libSQL. An app that uses syncLibSQL() or libSQLOptions has to settle on another approach before moving to SDK 58.
5. Behaviors that change in the dev environment
| `expo login` | Browser login is the default |
| `NODE_ENV` | Set to development or production by command, so `.env` loading changes |
| Node.js | Odd-numbered releases (such as 23 and 25) are not supported |
| macOS | Not supported in SDK 58 |
^58.0.0 --fix
latest
- Install expo → Check
- Check → Review changes
- Review changes → Rebuild the dev build
Expo Go needs a note of its own. The SDK 58 version of Expo Go takes a few weeks to reach the app stores, and the new Expo Go supports only SDK 58, according to the notes. Until then, check with a development build.
I would test R8 and the scene life cycle before any new feature. Neither is a gain you switch on; both can break your app. Expo UI and App Intents, on the other hand, include parts marked alpha or beta, so looking this time is enough.
Creating a new development build takes longer than people expect. Setting a day aside for it, using these release notes as the guide, looks safer. The notes do not say which items will actually catch your app, so you have to check that yourself.

- Tauri fixed its installer in v2.12.5, covered in an earlier post
- The Android agent skills repository android/skills gained 873 stars this week
react-nativehas 13,054,365 weekly downloads on npm
Sources
- expo, weekly downloads on npm
- Expo SDK 58
- Expo SDK 58 Beta
- react-native, weekly downloads on npm