React Native Deployment
Priority: P2 (MAINTENANCE)
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-pushLimitations: Cannot update native code (Obj-C, Java, Swift, Kotlin).
Expo Projects: Built-in OTA updates via channels (dev, staging, prod).
Install:
expo install expo-updates
Build Configurations
Expo (EAS Build)
{
"build": {
"development": { "developmentClient": true },
"preview": { "distribution": "internal" },
"production": { "autoIncrement": true }
}
}
eas build --platform ios --profile production
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.
Reference & Examples
See references/codepush-setup.md.
Related Topics
common/git-collaboration | security