Upgrade this project's Expo SDK deliberately, one version at a time, following the expo-sdk-upgrade skill. $ARGUMENTS may name the target SDK; if the jump spans more than one major, tell the user you will land them one at a time and do the first hop now.
Preflight, before changing anything:
- Confirm the working tree is clean; if not, stop and ask.
- Create an upgrade branch.
- Record the current state:
npx expo-doctoroutput and the dependency list. This is the baseline to diff against. - Read the target SDK's changelog (search for the official "Expo SDK " changelog post) and list the breaking changes that touch dependencies this project actually uses. Show that list to the user before proceeding.
Execute in the canonical order: bump
expo, thennpx expo install --fix, thennpx expo-doctor. Resolve doctor complaints before building anything.Regenerate natives when the project uses CNG:
npx expo prebuild --clean. In a bare project, apply the native diffs the changelog calls out instead.Verify honestly:
npx tsc --noEmitand the test suite.- Build and boot BOTH platforms.
- Walk the native-heavy paths: auth, purchases, camera or media if present, push, deep links.
Check the OTA fence before finishing: confirm the runtime version will differ from the previous release (appVersion policy plus a version bump, or an explicit runtime bump). State plainly that the first release after this upgrade must be a store build.
Report: what moved, what broke and how it was fixed, which patches or workarounds became deletable, and what remains for the user to decide. Do not commit unless asked.