Master deployment - EAS Build, Fastlane, App Store, Play Store, and OTA updates
View on GitHubpluginagentmarketplace/custom-plugin-react-native
react-native-assistant
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-react-native/blob/main/skills/react-native-deployment/SKILL.md -a claude-code --skill react-native-deploymentInstallation paths:
.claude/skills/react-native-deployment/# 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
```bash
# Install EAS CLI
npm install -g eas-cli
# Login
eas login
# Configure
eas build:configure
# Build
eas build --platform all --profile production
```
### 2. EAS Configuration
```json
// 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
```bash
# With Fastlane Match
fastlane match appstore
# Manual (Xcode)
# 1. Create certificate in Apple Developer
# 2. Create provisioning profile
# 3. Download and install in Xcode
```
### 4. Android Keystore
```bash
# Generate keystore
keytool -genkeypair -v -storetype PKCS12 \
-keystore release.keystore \
-alias my-key-alias \
-keyalg RSA -keysize 2048 -validity 10000
# NEVER commit keystore or passwords
```
### 5. OTA Updates
```typescript
// 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
```bash
# Build and submit in one command
eas build --platform all --profile production --auto-