Expo SDK reference
Edit page
Access device and system functionality in your Expo and React Native apps using Expo SDK packages.
Edit page
The Expo SDK is a collection of packages that provide access to device and system functionality such as camera, contacts, location, sensors, haptics, and more. Each package targets a specific feature and can be used independently. All packages work in any React Native app with the expo package installed.
You can install any Expo SDK package using the npx expo install command. For example, three different packages are installed using the following command:
- npx expo install expo-camera expo-contacts expo-sensorsAfter installing one or more packages, you can import them into your JavaScript code:
import { CameraView } from 'expo-camera'; import * as Contacts from 'expo-contacts'; import { Gyroscope } from 'expo-sensors';
This allows you to write Contacts.getContactsAsync() and read the contacts from the device, read the gyroscope sensor to detect device movement, or start the phone's camera and take photos.
All Expo SDK packages work in any React Native app
Expo apps are React Native apps, so all Expo SDK packages work in any React Native app with the expo package installed and configured. The easiest way to create a React Native app with support for Expo SDK packages is to use create-expo-app. However, you can also add Expo SDK support to an existing React Native app with the npx install-expo-modules command.
# Create a project named my-app- npx create-expo-app my-app --template bare-minimumLearn more about configuring projects created with npx @react-native-community/cli@latest init to Expo SDK packages.
Learn how to install Expo SDK packages in your project.
Using pre-release versions
New Expo SDK versions are released three times each year. Between these releases, we publish pre-release versions of the expo package and all of the Expo SDK packages. Pre-releases are not considered stable and should only be used if you are comfortable with the risk of encountering bugs or other issues.
Canary releases
Canary releases represent a snapshot of the state of the main branch at the time they are published. Canary package versions include -canary in the name, along with the date and commit hash, such as 55.0.0-canary-20260121-a63c0dd. To install the latest canary release:
# Install the alpha version of expo and its related packages- npm install expo@canary && npx expo install --fixYou can often use pre-release versions of individual packages with stable releases of the Expo SDK. There may occasionally be incompatibilities or other issues that arise in canary-quality releases. You may want to silence dependency validation warnings if you opt in to the canary package and once you have verified that it works well for your use cases.
Beta releases
Before each Expo SDK release, we publish beta versions of the expo package and all of the Expo SDK packages. Beta releases are considered much more stable than canary releases, and we encourage developers to try them out on their apps and share their feedback. Beta releases use the beta tag on npm and follow the instructions in the related changelog post.
Each Expo SDK version depends on a React Native version
| Expo SDK version | React Native version | React version | React Native Web version | React Native TV version | Minimum Node.js version |
|---|---|---|---|---|---|
| 55.0.0 | 0.83 | 19.2.0 | 0.21.0 | 0.83-stable | 20.19.x |
| 54.0.0 | 0.81 | 19.1.0 | 0.21.0 | 0.81-stable | 20.19.x |
| 53.0.0 | 0.79 | 19.0.0 | 0.20.0 | 0.79-stable | 20.18.x |
Additional information
Support for Android and iOS versions
Each version of Expo SDK supports a minimum OS version of Android and iOS. For Android, the compileSdkVersion is defined which tells the Gradle which Android SDK version to use to compile the app. This also means that you can use the Android API features included in that SDK version and from the previous versions. For iOS, the Xcode tells the minimum Xcode SDK version to use to compile the app.
| Expo SDK version | Android version | compileSdkVersion | targetSdkVersion | iOS version | Xcode version |
|---|---|---|---|---|---|
| 55.0.0 | 7+ | 36 | 36 | 15.1+ | 26.2+ |
| 54.0.0 | 7+ | 36 | 36 | 15.1+ | 16.1+ |
| 53.0.0 | 7+ | 35 | 35 | 15.1+ | 16.0+ |
When deciding whether to upgrade your Expo SDK version, consider both Expo's SDK version and app store submission requirements, as described in the above table. Google Play Store and Apple App Store periodically increase their minimum required OS versions and API levels, which are required for new app submissions. Expo has no control over the app store requirements, and you should check Google and Apple for the current store submission requirements.
