191 lines
3.6 KiB
Markdown
191 lines
3.6 KiB
Markdown
---
|
|
name: expo-deployment
|
|
description: Deploying Expo apps to iOS App Store, Android Play Store, web hosting, and API routes
|
|
version: 1.0.0
|
|
license: MIT
|
|
---
|
|
|
|
# Deployment
|
|
|
|
This skill covers deploying Expo applications across all platforms using EAS (Expo Application Services).
|
|
|
|
## References
|
|
|
|
Consult these resources as needed:
|
|
|
|
- ./references/workflows.md -- CI/CD workflows for automated deployments and PR previews
|
|
- ./references/testflight.md -- Submitting iOS builds to TestFlight for beta testing
|
|
- ./references/app-store-metadata.md -- Managing App Store metadata and ASO optimization
|
|
- ./references/play-store.md -- Submitting Android builds to Google Play Store
|
|
- ./references/ios-app-store.md -- iOS App Store submission and review process
|
|
|
|
## Quick Start
|
|
|
|
### Install EAS CLI
|
|
|
|
```bash
|
|
npm install -g eas-cli
|
|
eas login
|
|
```
|
|
|
|
### Initialize EAS
|
|
|
|
```bash
|
|
npx eas-cli@latest init
|
|
```
|
|
|
|
This creates `eas.json` with build profiles.
|
|
|
|
## Build Commands
|
|
|
|
### Production Builds
|
|
|
|
```bash
|
|
# iOS App Store build
|
|
npx eas-cli@latest build -p ios --profile production
|
|
|
|
# Android Play Store build
|
|
npx eas-cli@latest build -p android --profile production
|
|
|
|
# Both platforms
|
|
npx eas-cli@latest build --profile production
|
|
```
|
|
|
|
### Submit to Stores
|
|
|
|
```bash
|
|
# iOS: Build and submit to App Store Connect
|
|
npx eas-cli@latest build -p ios --profile production --submit
|
|
|
|
# Android: Build and submit to Play Store
|
|
npx eas-cli@latest build -p android --profile production --submit
|
|
|
|
# Shortcut for iOS TestFlight
|
|
npx testflight
|
|
```
|
|
|
|
## Web Deployment
|
|
|
|
Deploy web apps using EAS Hosting:
|
|
|
|
```bash
|
|
# Deploy to production
|
|
npx expo export -p web
|
|
npx eas-cli@latest deploy --prod
|
|
|
|
# Deploy PR preview
|
|
npx eas-cli@latest deploy
|
|
```
|
|
|
|
## EAS Configuration
|
|
|
|
Standard `eas.json` for production deployments:
|
|
|
|
```json
|
|
{
|
|
"cli": {
|
|
"version": ">= 16.0.1",
|
|
"appVersionSource": "remote"
|
|
},
|
|
"build": {
|
|
"production": {
|
|
"autoIncrement": true,
|
|
"ios": {
|
|
"resourceClass": "m-medium"
|
|
}
|
|
},
|
|
"development": {
|
|
"developmentClient": true,
|
|
"distribution": "internal"
|
|
}
|
|
},
|
|
"submit": {
|
|
"production": {
|
|
"ios": {
|
|
"appleId": "your@email.com",
|
|
"ascAppId": "1234567890"
|
|
},
|
|
"android": {
|
|
"serviceAccountKeyPath": "./google-service-account.json",
|
|
"track": "internal"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Platform-Specific Guides
|
|
|
|
### iOS
|
|
|
|
- Use `npx testflight` for quick TestFlight submissions
|
|
- Configure Apple credentials via `eas credentials`
|
|
- See ./reference/testflight.md for credential setup
|
|
- See ./reference/ios-app-store.md for App Store submission
|
|
|
|
### Android
|
|
|
|
- Set up Google Play Console service account
|
|
- Configure tracks: internal → closed → open → production
|
|
- See ./reference/play-store.md for detailed setup
|
|
|
|
### Web
|
|
|
|
- EAS Hosting provides preview URLs for PRs
|
|
- Production deploys to your custom domain
|
|
- See ./reference/workflows.md for CI/CD automation
|
|
|
|
## Automated Deployments
|
|
|
|
Use EAS Workflows for CI/CD:
|
|
|
|
```yaml
|
|
# .eas/workflows/release.yml
|
|
name: Release
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
build-ios:
|
|
type: build
|
|
params:
|
|
platform: ios
|
|
profile: production
|
|
|
|
submit-ios:
|
|
type: submit
|
|
needs: [build-ios]
|
|
params:
|
|
platform: ios
|
|
profile: production
|
|
```
|
|
|
|
See ./reference/workflows.md for more workflow examples.
|
|
|
|
## Version Management
|
|
|
|
EAS manages version numbers automatically with `appVersionSource: "remote"`:
|
|
|
|
```bash
|
|
# Check current versions
|
|
eas build:version:get
|
|
|
|
# Manually set version
|
|
eas build:version:set -p ios --build-number 42
|
|
```
|
|
|
|
## Monitoring
|
|
|
|
```bash
|
|
# List recent builds
|
|
eas build:list
|
|
|
|
# Check build status
|
|
eas build:view
|
|
|
|
# View submission status
|
|
eas submit:list
|
|
```
|