Hiprup

How do you handle different React Native versions and what's the upgrade path (`react-native upgrade`, Upgrade Helper)?

React Native upgrades are not a simple npm update — versions touch native files (Podfile, build.gradle, AppDelegate, MainApplication). The tooling has gotten much better, but you still need a deliberate process.

The Upgrade Helper (the canonical tool):

  • Web tool at react-native-community.github.io/upgrade-helper.

  • Shows a file-by-file diff between your current RN version and any target version.

  • You manually apply changes to ios/, android/, package.json, babel.config.js, etc.

The CLI upgrade command:

  • npx @react-native-community/cli upgrade [version] — runs the same diffs and three-way merges them; conflicts marked for manual resolution.

  • Always works best on a clean git tree so you can review and reset.

For Expo projects (simpler):

  • npx expo install expo@<new-sdk> then npx expo install --fix to update peer deps to compatible versions.

  • npx expo prebuild --clean regenerates ios/ and android/ from app.json for that SDK.

  • Read Expo's SDK changelog for breaking changes per release.

Best practices:

  • Upgrade on a dedicated branch with empty diff (commit clean before starting).

  • Don't skip more than 2-3 minor versions at once — go incrementally.

  • Audit each native module's New-Arch compatibility on every major bump.

  • Always do a full E2E run on real devices after the upgrade.

There's no clean npm update story for RN — upgrades touch native files (Podfile, build.gradle, AppDelegate). Mention the React Native Upgrade Helper by name (it's a web tool that diffs your current version vs the target) and the npx @react-native-community/cli upgrade command. For Expo projects, npx expo install --fix and expo prebuild --clean are the workflow. Bonus signal: never skip more than 2-3 minor versions in one upgrade.

How do you handle different React Native versions and what's the upgrade path (`react-native upgrade`, Upgrade Helper)? | Hiprup