Expo SDK 40 beta is now available
Published: 2020-12-01 00:53:33

*Learn about the changes, how to try it out, and how to give feedback.*

[As promised](https://blog.expo.io/coming-soon-beta-release-period-for-expo-sdk-965ab3bd177f?source=collection_home---6------0-----------------------), 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](https://github.com/expo/expo/blob/master/CHANGELOG.md) 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 the `expo` package. If you use it, you should `expo install expo-app-loading` and import `AppLoading` 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 using `import 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 from `react-native-screens`.
- If you use background location features on Android, you will need to manually add `"ACCESS_BACKGROUND_LOCATION"` to the list of permissions in  `android.permissions` in your app configuration file (`app.json` or `app.config.js`) if you haven't done so already. Background location is now an opt-in permission on Android ([#10989](https://github.com/expo/expo/pull/10989)).
- `@expo/vector-icons` has been updated to track the latest icon sets from `react-native-vector-icons@7.1.0` (the previously tracked version was `6.6.0`). Updated icon sets: [MaterialCommunityIcons](https://github.com/templarian/MaterialDesign) to 5.3.45, [MaterialIcons](https://github.com/google/material-design-icons) to 4.0.0, [FontAwesome 5](https://github.com/FortAwesome/Font-Awesome) to 5.13.0, and [Feather](https://github.com/feathericons/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](https://www.npmjs.com/package/getenv/v/0.7.0#envboolishname-fallback)).

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 requires `expo-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](https://testflight.apple.com/join/GZJxxfUU).
- **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, including `build:{android,ios}`.
- **Use the beta release on Snack by adding a query parameter:**
  - [http://snack.expo.io/?sdkVersion=40.0.0](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](https://docs.expo.io/versions/v40.0.0)).

![Screenshot of Expo API documentation version picker](https://dev-to-uploads.s3.amazonaws.com/i/0jb3saiej02ihaitxqa1.png)

### How to report issues

- Create an issue on [https://github.com/expo/expo/issues](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! 🚀