Learn about the changes, how to try it out, and how to give feedback.
As promised, our first-ever beta SDK release is now available! The beta period will last approximately one week, and it is an opportunity for developers to ensure that the new release does not introduce any regressions for their particular system and app configurations.
SDK 40 beta includes React Native 0.63, the same version as SDK 39. The full release notes won't be available until the final release, but you can browse the changes in the expo/expo CHANGELOG to learn more about the scope of the release and any breaking changes.
A few changes to be aware of
-
AppLoading
has been removed from theexpo
package. If you use it, you shouldexpo install expo-app-loading
and importAppLoading
from its own package (possibly before first running your app with SDK 40 if you'd like to head off an error screen). Import it usingimport AppLoading from 'expo-app-loading'
. - If you use React Navigation and
react-native-screens
, you will want to update to React Navigation v5 or silence the related warning fromreact-native-screens
. - If you use background location features on Android, you will need to manually add
"ACCESS_BACKGROUND_LOCATION"
to the list of permissions inandroid.permissions
in your app configuration file (app.json
orapp.config.js
) if you haven't done so already. Background location is now an opt-in permission on Android (#10989). -
@expo/vector-icons
has been updated to track the latest icon sets fromreact-native-vector-icons@7.1.0
(the previously tracked version was6.6.0
). Updated icon sets: MaterialCommunityIcons to 5.3.45, MaterialIcons to 4.0.0, FontAwesome 5 to 5.13.0, and Feather to 4.28.0.
How to try out the beta release
You will be able to opt in to using the SDK 40 beta by setting the EXPO_BETA
environment variable to 1
(or some truthy value).
On macOS and Linux, you can set this per command with EXPO_BETA=1 expo <command>
. On Windows, you can do the same with cross-env: npx cross-env EXPO_BETA=1 expo <command>
. Below we have listed in the commands in their more concise form.
-
Install the latest version of expo-cli:
-
npm i -g expo-cli
(SDK 40 requiresexpo-cli@4.0.6
or greater)
-
-
Initialize a new project with SDK 40 beta:
EXPO_BETA=1 expo init
-
Upgrade an existing project:
EXPO_BETA=1 expo upgrade
-
Install the latest Expo client app for iOS:
- To your simulator:
EXPO_BETA=1 expo client:install:ios
outside of an Expo project or inside of an SDK 40 project - To your physical device: use this TestFlight open beta link.
- To your simulator:
-
Install the latest Expo client app for Android:
-
EXPO_BETA=1 expo client:install:android
outside of an Expo project or inside of an SDK 40 project.
-
- Other commands will work as expected without the
EXPO_BETA
environment variable, includingbuild:{android,ios}
. -
Use the beta release on Snack by adding a query parameter:
- http://snack.expo.io/?sdkVersion=40.0.0. Note that the in-browser simulators do not yet support SDK 40.
- Read the documentation by selecting it from the version selector in the API reference section (or clicking here).
How to report issues
- Create an issue on https://github.com/expo/expo/issues and be sure to fill out the template.
- Figuring out the underlying causes of issues is super helpful.
- Let us know that you are using the SDK 40 beta so we can prioritize the issue.
Thank you for helping us with testing the release, we look forward to shipping it soon! 🚀
Top comments (8)
Is there a way of running "npx create-react-native-app " without using the latest version of expo?
A created a new project recently and tried to use some libs that I had working with expo 39.0.2, but apparently some of them dont want to work with expo 40.0.0.
Any plans on updating to react 17?
we will support react 17 when there is a stable release of react-native that includes it. this looks like it will be react-native 0.64, which should be released soon, but it is too late in the expo sdk release cycle for us to update the react-native version. so, following the quarterly release cycle for expo, this is likely for Q1 or Q2 2021
Awesome. Thanks!
No info regarding react native for web :( what will be supported? any new features or improvements there?
the latest version of react-native-web is supported. see the changelog linked to above for fixes and improvements to expo modules on web.
Amazing.
What is the recommended way to create scheduled repeating every day notifications in SDK 39?
here's how to schedule notifications at various intervals: docs.expo.io/versions/latest/sdk/n...
it is an exercise to the reader to make it work for the specific interval that they would like ;)