CodePush & Expo Updates migration checklist for Cresc
Use this checklist if your React Native team is moving away from deprecated CodePush or migrating from Expo Updates (EAS Update) to dramatically cut OTA delivery costs, eliminate surprise overage bills, and adopt high-speed delta patches.
1. Audit your current OTA workflow and costs
Write down:
- which apps still use CodePush or Expo Updates (EAS Update)
- current OTA costs and overage risks (if using Expo EAS Update, note your monthly update MAUs and bandwidth overage charges—Cresc can slash this by 70–90% with predictable flat tiers)
- which channels or rollout groups exist
- how often you publish JavaScript updates
- which CI jobs publish or promote releases today
2. Integrate Cresc in the app
- install the SDK (
npm i @react-native-update/cresc) - wire the native bundle URL (or use Expo auto integration)
- confirm a release build boots cleanly with Cresc enabled
Start here: Installation & Config
3. Upload the exact baseline build
Before publishing OTA patches, upload the exact APK or IPA that matches the build users actually install. Cresc uses that build as the baseline for later HDiff differential comparisons, ensuring updates stay at micro-sizes (~42 KB).
4. Recreate the release workflow
Move your publishing path onto Cresc (compatible with React Native CLI, bare React Native, or Expo workflows):
- CLI login or API Key
- build artifact upload
- OTA package build
- release or promote step in CI
See: Publishing Hot Updates and API Key
5. Test a real OTA release end to end
- publish a small JavaScript-only change
- verify the update prompt or silent download strategy
- verify the switch version behavior
- verify rollback on failure
6. Watch the first production rollout closely
Track:
- update adoption speed
- automated rollback events
- app-open check behavior
- package size and release cadence (notice the massive bandwidth drop from delta patches)
7. Remove the old operational dependency
Once Cresc is verified in production:
- cancel expensive Expo EAS Update tiers or remove sunset CodePush dependencies
- remove legacy OTA credentials and keys from CI
- document the new workflow for your team
- point engineers to the Cresc dashboard and docs