React Native Deployment
Priority: P2 (MAINTENANCE)
Workflow: Ship a Production Release with EAS Build
- Configure
eas.jsonwith development, preview, and production profiles - Set environment variables in
.env.production - Run
eas build --platform all --profile production - Verify the build artifact on the EAS dashboard
- Submit to stores:
eas submit --platform ios/eas submit --platform android - For JS-only hotfixes, publish OTA:
eas update --branch production
Over-The-Air (OTA) Updates
CodePush (Microsoft)
- JS-Only Updates: Update JS bundle without app store review.
- Staging/Production: Use separate deployments.
- Install:
npm install react-native-code-push - Limitations: Cannot update native code (Obj-C, Java, Swift, Kotlin).
Expo Updates
- Expo Projects: Built-in OTA updates via channels (dev, staging, prod).
- Install:
expo install expo-updates
Build Configurations
Expo (EAS Build)
See deployment reference for EAS build profile configuration and CLI commands.
React Native CLI
- Android: Use
productFlavorsinbuild.gradle(dev, staging, prod). - iOS: Use Xcode schemes.
- Fastlane: Automate builds and uploads (
fastlane ios release).
Environment Management
- react-native-config:
.envfiles for API URLs, keys. - Separate Configs:
.env.dev,.env.staging,.env.production.
Anti-Patterns
- No OTA for Native Changes: Requires store release.
- No Secrets in Code: Use
.env& CI secrets. - No Manual Builds: Automate with CI/CD.
References
See references/codepush-setup.md for CodePush config, EAS profiles, and Fastlane automation.