Skip to main content

Expo SDK Compatibility Checker: Package & React Native Version Guide

Verify your Expo SDK version, check package compatibility with expo-doctor, understand managed vs bare workflow, and upgrade your Expo SDK safely with EAS Build.

✓ SDK version reference table ✓ expo-doctor usage ✓ Managed vs bare workflow ✓ EAS Build setup

Expo SDK to React Native Version Map

Expo SDK React Native React Status
SDK 52 0.76 18.3 Latest
SDK 51 0.74 18.2 Supported
SDK 50 0.73 18.2 Supported
SDK 49 0.72 18.2 End of life
SDK 48 0.71 18.2 End of life

Check Compatibility with expo-doctor

expo-doctor is the quickest way to find package version mismatches in your Expo project:

# Check your project for compatibility issues
npx expo-doctor

# Example output:
# ✓ Expo config is valid
# ✓ No issues found in package.json
# ✗ [email protected] is not compatible with SDK 52
#   Expected: ~3.16.2
#   Run: npx expo install react-native-reanimated to fix

# Fix all detected issues automatically
npx expo install --fix

# Check a specific package's compatible version
npx expo install react-native-reanimated --check

Installing Packages with expo install

Always use npx expo install instead of npm install for packages that may have Expo SDK-specific versions:

# expo install resolves the compatible version automatically
npx expo install react-native-reanimated
npx expo install expo-camera expo-location

# For packages outside Expo's registry, npm install works fine
npm install lodash date-fns zod

# After installing native packages in bare workflow:
cd ios && pod install && cd ..
# Then rebuild:
npx expo run:ios
npx expo run:android

Upgrading Expo SDK

# Step 1: Upgrade the Expo package
npx expo install expo@^52.0.0

# Step 2: Update all Expo packages to compatible versions
npx expo install --fix

# Step 3: Verify no remaining issues
npx expo-doctor

# Step 4: For bare workflow — update native files
# Check the Expo SDK changelog for required native changes:
# https://expo.dev/changelog

# Step 5: Rebuild
npx expo run:ios  # or use EAS Build
npx expo run:android

EAS Build Configuration

// eas.json — build profiles
{
  "cli": {
    "version": ">=12.0.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": { "simulator": true }
    },
    "preview": {
      "distribution": "internal",
      "android": { "buildType": "apk" }
    },
    "production": {
      "autoIncrement": true
    }
  },
  "submit": {
    "production": {
      "ios": { "appleId": "[email protected]" },
      "android": { "serviceAccountKeyPath": "./service-account.json" }
    }
  }
}
# Build for production
eas build --platform all --profile production

# Build iOS only (no Mac required)
eas build --platform ios --profile production

# Submit to App Store and Play Store
eas submit --platform all

Frequently Asked Questions

How do I check which React Native version my Expo SDK includes?▼

Each Expo SDK bundles a specific React Native version. Check the official compatibility table at docs.expo.dev/versions/latest/. Key mappings: Expo SDK 50 = React Native 0.73, SDK 51 = RN 0.74, SDK 52 = RN 0.76. You can also run 'npx expo install --check' in your project to verify all installed packages match the current SDK's compatible versions.

How do I check if a package is compatible with my Expo SDK?▼

Run 'npx expo-doctor' in your project — it checks all installed packages against the current Expo SDK's compatibility list and flags any mismatches. Alternatively, use 'npx expo install <package-name>' instead of 'npm install' — Expo's installer automatically resolves the compatible version for your SDK. The expo.fyi/package-incompatibility page lists known incompatible packages.

What is the difference between Expo managed workflow and bare workflow?▼

Managed workflow: Expo manages your native code entirely. You write JavaScript only, Expo handles iOS and Android builds, and you cannot add custom native modules outside of Expo's SDK. Bare workflow: You have full access to android/ and ios/ directories. You can add any native module, but you're responsible for native builds and Xcode/Android Studio configuration. Most teams start managed and eject to bare only when needed.

How do I upgrade Expo SDK?▼

Run 'npx expo install expo@latest' to update the Expo package, then 'npx expo install --fix' to update all Expo packages to compatible versions. Review the Expo SDK changelog at expo.dev/changelog for breaking changes. After upgrading, run 'npx expo-doctor' to verify all dependencies are compatible. If using EAS Build, trigger a new build to pick up the SDK update.

What is EAS Build and how does it relate to Expo SDK?▼

EAS (Expo Application Services) Build is Expo's cloud build service. It compiles your app's native code on Expo's servers, so you can build iOS apps without a Mac. EAS Build uses build profiles in eas.json to configure the build environment. The Expo SDK version in your project determines which React Native version EAS Build uses. EAS Build supports both managed and bare workflow projects.

Can I use packages not in the Expo SDK?▼

Yes. In managed workflow, you can use any JavaScript-only package freely. For packages with native code, the package must have an Expo config plugin or be included in Expo's pre-built native modules. In bare workflow, you can use any package with native code — you'll need to run 'pod install' for iOS and rebuild. The expo.dev/packages directory lists packages with known Expo compatibility status.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →