| name | react-native-deployment |
| description | OTA updates with CodePush, EAS Build, and release configurations. Use when configuring OTA updates, EAS Build, or managing release configs for React Native. (triggers: app.json, eas.json, android/app/build.gradle, ios/**, deployment, codepush, eas, release, build, fastlane) |
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-push
-
Limitations: 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
productFlavors in build.gradle (dev, staging, prod).
- iOS: Use Xcode schemes.
- Fastlane: Automate builds and uploads (
fastlane ios release).
Environment Management
- react-native-config:
.env files 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.