Master deployment - EAS Build, Fastlane, App Store, Play Store, and OTA updates
Resources
3Install
npx skillscat add pluginagentmarketplace/custom-plugin-react-native/react-native-deployment Install via the SkillsCat registry.
SKILL.md
React Native Deployment Skill
Learn to build, sign, and deploy React Native apps to iOS App Store, Google Play Store, and OTA update systems.
Prerequisites
- React Native app ready for production
- Apple Developer Account (iOS)
- Google Play Developer Account (Android)
- Basic understanding of CI/CD
Learning Objectives
After completing this skill, you will be able to:
- Configure EAS Build for production
- Set up iOS code signing
- Generate Android keystores
- Submit to App Store and Play Store
- Implement OTA updates with EAS Update
Topics Covered
1. EAS Build Setup
# Install EAS CLI
npm install -g eas-cli
# Login
eas login
# Configure
eas build:configure
# Build
eas build --platform all --profile production2. EAS Configuration
// eas.json
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {
"ios": { "appleId": "your@email.com" },
"android": { "track": "production" }
}
}
}3. iOS Code Signing
# With Fastlane Match
fastlane match appstore
# Manual (Xcode)
# 1. Create certificate in Apple Developer
# 2. Create provisioning profile
# 3. Download and install in Xcode4. Android Keystore
# Generate keystore
keytool -genkeypair -v -storetype PKCS12 \
-keystore release.keystore \
-alias my-key-alias \
-keyalg RSA -keysize 2048 -validity 10000
# NEVER commit keystore or passwords5. OTA Updates
// Check for updates
import * as Updates from 'expo-updates';
async function checkUpdates() {
const update = await Updates.checkForUpdateAsync();
if (update.isAvailable) {
await Updates.fetchUpdateAsync();
await Updates.reloadAsync();
}
}6. Submission Commands
# Build and submit in one command
eas build --platform all --profile production --auto-submit
# Submit existing build
eas submit --platform ios --latest
eas submit --platform android --latestQuick Start Example
# 1. Configure EAS
eas build:configure
# 2. Build for production
eas build --platform all --profile production
# 3. Submit to stores
eas submit --platform all --latest
# 4. Push OTA update
eas update --branch production --message "Bug fixes"Pre-Submission Checklist
iOS App Store
- App icon (1024x1024)
- Screenshots (all sizes)
- Privacy policy URL
- App review information
- Build uploaded to TestFlight
Google Play Store
- Hi-res icon (512x512)
- Feature graphic (1024x500)
- Screenshots (phone + tablet)
- Content rating completed
- Signed AAB uploaded
Common Errors & Solutions
| Error | Cause | Solution |
|---|---|---|
| Code signing failed | Certificate mismatch | Regenerate certs |
| Build number conflict | Not incremented | Use autoIncrement |
| Upload rejected | Missing metadata | Complete all fields |
Validation Checklist
- Build succeeds for both platforms
- App installs from TestFlight/Internal
- OTA updates apply correctly
- Store listing is complete
Usage
Skill("react-native-deployment")Bonded Agent: 07-react-native-deploy