On this page
Build and Publish
Publishing a React Native app with Expo uses EAS (Expo Application Services) for cloud builds and store submission.
Install EAS CLI
npm install -g eas-cli
eas login
eas init
This creates eas.json in your project.
Configure eas.json
{
"build": {
"production": {}
},
"submit": {
"production": {}
}
}
App Icons and Splash
Place assets in the assets/ folder and reference them in app.json:
{
"expo": {
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
}
}
}
Icon: 1024×1024 PNG. Splash: 1284×2778 PNG recommended.
Build for Production
eas build --platform ios --profile production # iOS
eas build --platform android --profile production # Android
EAS builds in the cloud — no local Xcode or Android Studio required.
Store Submission
iOS: Enroll in the Apple Developer Program, then:
eas submit --platform ios
Android: Create a Google Play Console account, then:
eas submit --platform android
Version Management
Update before each release in app.json:
{
"expo": {
"version": "1.2.0",
"ios": { "buildNumber": "3" },
"android": { "versionCode": 3 }
}
}
Over-the-Air Updates
Push JavaScript updates without a store review:
npx expo install expo-updates
eas update --branch production --message "Fix login bug"
OTA updates work for JS/asset changes only — native code changes require a new store build.
Pre-Launch Checklist
- Test on physical iOS and Android devices
- Add privacy policy URL and store screenshots
- Verify permissions and offline behavior
Congratulations — your React Native app is ready for the world.