expo-upgrade

Upgrade Expo SDK versions and migrate deprecated packages in React Native projects.

Updated Mar 27, 2026
One-click install
npx skills add https://github.com/gmackie/agent-skills --skill expo-upgrade-gmackie
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-upgrade
Source: https://github.com/gmackie/agent-skills/tree/main/skills/expo-upgrade
Command: npx skills add https://github.com/gmackie/agent-skills --skill expo-upgrade-gmackie

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Upgrading an Expo SDK involves breaking changes, deprecated packages, native rebuilds, and cache issues that are easy to miss. This Skill provides a structured, step-by-step process for upgrading Expo SDK versions safely, including diagnostics, dependency fixes, and migration guides for major API changes. ## Core Features & Use Cases - Guided Upgrade Process: Runs npx expo install --fix, expo-doctor diagnostics, cache clearing, and prebuild steps in the correct order, with guards for bare workflow vs. Continuous Native Generation projects. - Migration References: Includes detailed guides for React 19 changes, React Compiler setup, New Architecture, native tabs, expo-av to expo-audio/expo-video, and react-navigation to expo-router migrations. - Housekeeping & Deprecation Checks: Identifies deprecated packages (expo-av, AsyncStorage, expo-permissions), redundant Metro/PostCSS config, outdated patches, and Hermes V1 memory regression risks. - Use Case: When upgrading a project from SDK 54 to SDK 57, use this Skill to update dependencies, migrate audio/video code off expo-av, enable React Compiler, and avoid the Hermes V1 memory regression by targeting [email protected] or later. ## Quick Start Use the expo-upgrade skill to upgrade this project to the latest Expo SDK, run diagnostics, and migrate any deprecated packages.

Frequently Asked Questions about expo-upgrade

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I upgrade an Expo SDK version in my project?▼

Run npx expo install expo@latest followed by npx expo install --fix to align dependencies, then run npx expo-doctor for diagnostics. Clear caches with npx expo export -p ios --clear and remove node_modules and .expo before reinstalling.

How to migrate from expo-av to expo-audio and expo-video?▼

Replace Audio.Sound.createAsync with the useAudioPlayer hook and Audio.Recording with useAudioRecorder from expo-audio. For video, replace the Video component with VideoView paired with useVideoPlayer from expo-video, noting that time values use seconds instead of milliseconds.

Does Expo SDK 54 support React Compiler?▼

Yes, React Compiler is stable in Expo SDK 54 and later. Enable it by adding "experiments": { "reactCompiler": true } to app.json, after which manual useMemo, useCallback, and React.memo calls can be removed.

Why does my Expo app use excessive memory after upgrading to SDK 56?▼

SDK 55 with Hermes V1, all SDK 56 releases, and SDK 57 before [email protected] contain a Hermes V1 memory regression triggered by react-native-worklets or react-native-reanimated. Upgrade directly to SDK 57 with [email protected] or later.

When should I run expo prebuild --clean during an upgrade?▼

Run npx expo prebuild --clean only when ios/ or android/ directories exist in the project and the upgrade requires native changes. Projects using Continuous Native Generation regenerate native projects at build time and should skip this step.

Can I import @react-navigation packages directly in Expo SDK 56?▼

No, SDK 56+ requires repointing @react-navigation/* imports to matching expo-router entry points such as expo-router/react-navigation or expo-router/js-stack. Run the npx expo-codemod sdk-56-expo-router-react-navigation-replace codemod to automate the rewrite.