121 lines
3.0 KiB
Markdown
121 lines
3.0 KiB
Markdown
# EAS Update Setup Guide
|
|
|
|
## Current Status
|
|
|
|
✅ **Completed:**
|
|
- Installed `eas-cli` as dev dependency
|
|
- Created `eas.json` with update channels (production, preview, development)
|
|
- Configured `app.json` with runtime version policy
|
|
|
|
⏳ **Manual Steps Required:**
|
|
|
|
### 1. Initialize EAS Project
|
|
|
|
Run the following command and follow the prompts:
|
|
|
|
```bash
|
|
npx eas init
|
|
```
|
|
|
|
This will:
|
|
- Prompt you to log in to your Expo account (create one if needed at expo.dev)
|
|
- Create a new project in your Expo account
|
|
- Add a `projectId` to your `app.json` under `expo.extra.eas.projectId`
|
|
|
|
### 2. Update the Updates URL
|
|
|
|
After running `eas init`, you'll receive a project ID. Update the `updates.url` in `app.json`:
|
|
|
|
```json
|
|
"updates": {
|
|
"url": "https://u.expo.dev/YOUR_PROJECT_ID_HERE"
|
|
}
|
|
```
|
|
|
|
Replace `YOUR_PROJECT_ID` with the actual project ID from the previous step.
|
|
|
|
### 3. Build a New Development Build
|
|
|
|
Since you're using a custom development client (`expo-dev-client`), you need to create a new build with EAS Update configured:
|
|
|
|
```bash
|
|
# For Android
|
|
npx eas build --profile development --platform android
|
|
|
|
# For iOS (requires Apple Developer account)
|
|
npx eas build --profile development --platform ios
|
|
```
|
|
|
|
Install this new build on your device. Your existing development build won't receive updates.
|
|
|
|
## Publishing Updates
|
|
|
|
Once setup is complete, publish updates on the go:
|
|
|
|
### Production Update
|
|
|
|
```bash
|
|
npx eas update --branch production --message "Fix critical bug"
|
|
```
|
|
|
|
Users on the production channel will receive this update.
|
|
|
|
### Preview Update (for testing)
|
|
|
|
```bash
|
|
npx eas update --branch preview --message "Test new feature"
|
|
```
|
|
|
|
### Development Update
|
|
|
|
```bash
|
|
npx eas update --branch development --message "WIP changes"
|
|
```
|
|
|
|
## Update Channels Explained
|
|
|
|
- **production**: For released apps in app stores
|
|
- **preview**: For internal testing before production
|
|
- **development**: For active development testing
|
|
|
|
Configure which channel your app uses in `eas.json` or at build time.
|
|
|
|
## Runtime Version Policy
|
|
|
|
We're using `"policy": "appVersion"` which means:
|
|
- Updates only work within the same app version (1.0.0)
|
|
- If you change native code or dependencies, increment the version in `app.json`
|
|
- Users need a new build for native changes, but JS/React changes update via EAS
|
|
|
|
## Quick Reference
|
|
|
|
```bash
|
|
# Check update status
|
|
npx eas update:list --branch production
|
|
|
|
# Roll back to previous update
|
|
npx eas update:rollback --branch production
|
|
|
|
# View update details
|
|
npx eas update:view [update-id]
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
**Update not appearing?**
|
|
- Ensure device is on the same channel as the update
|
|
- Force close and reopen the app
|
|
- Check the update was published: `npx eas update:list`
|
|
|
|
**"Runtime version mismatch" error?**
|
|
- Your app version doesn't match the update
|
|
- Rebuild the app with `eas build`
|
|
|
|
## Next Steps
|
|
|
|
1. Run `npx eas init` now
|
|
2. Update the `updates.url` in app.json with your project ID
|
|
3. Create a new development build with `npx eas build --profile development --platform android`
|
|
4. Install the new build on your device
|
|
5. Test publishing an update!
|