new_react_frontend #9
@@ -404,9 +404,14 @@ frontend-mobile/
|
|||||||
|
|
||||||
### EAS Build Profiles
|
### EAS Build Profiles
|
||||||
|
|
||||||
- **development**: Local development with dev client
|
| Profile | Platform | Build Type | Use Case |
|
||||||
- **preview**: Internal testing (APK/IPA)
|
|---------|----------|------------|----------|
|
||||||
- **production**: App Store/Google Play submission
|
| `development` | iOS | Simulator | Local testing on Mac |
|
||||||
|
| `development` | Android | APK | Local testing on device |
|
||||||
|
| `preview` | Android | APK | Internal testing & sharing |
|
||||||
|
| `production` | Android | AAB | Google Play Store submission |
|
||||||
|
|
||||||
|
**Note:** iOS builds require Apple Developer account ($99/year) and are configured separately.
|
||||||
|
|
||||||
### Environment Configuration
|
### Environment Configuration
|
||||||
|
|
||||||
@@ -424,6 +429,100 @@ const ENV = {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 🚀 Production Deployment (Mobile)
|
||||||
|
|
||||||
|
### Distribution Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
Development → EAS Build → App Store / Google Play → User Device
|
||||||
|
```
|
||||||
|
|
||||||
|
The mobile app is a **native application** that runs directly on the device. No Docker or server needed - users download it from the app stores.
|
||||||
|
|
||||||
|
### Step 1: Setup Expo Account
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install EAS CLI
|
||||||
|
npm install -g eas-cli
|
||||||
|
|
||||||
|
# Create account at https://expo.dev
|
||||||
|
|
||||||
|
# Login
|
||||||
|
eas login
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Initialize EAS Project
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd frontend-mobile
|
||||||
|
eas init
|
||||||
|
```
|
||||||
|
|
||||||
|
This generates a `projectId` - add it to `app.json`:
|
||||||
|
```json
|
||||||
|
"extra": {
|
||||||
|
"eas": {
|
||||||
|
"projectId": "your-project-id"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Configure Credentials
|
||||||
|
|
||||||
|
**Android (Google Play):**
|
||||||
|
1. Create developer account ($25 one-time fee)
|
||||||
|
2. Create project in Google Cloud Console
|
||||||
|
3. Enable Play Developer API
|
||||||
|
4. Download `google-service-account.json`
|
||||||
|
5. Place in `frontend-mobile/` directory
|
||||||
|
|
||||||
|
**iOS (App Store):**
|
||||||
|
1. Join Apple Developer Program ($99/year)
|
||||||
|
2. Create App ID in Apple Developer portal
|
||||||
|
3. Generate certificates and provisioning profiles
|
||||||
|
4. Update `eas.json` with your credentials
|
||||||
|
|
||||||
|
### Step 4: Build for Production
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Android (Google Play)
|
||||||
|
eas build --profile production --platform android
|
||||||
|
|
||||||
|
# iOS (App Store)
|
||||||
|
eas build --profile production --platform ios
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Submit to Stores
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Submit to Google Play
|
||||||
|
eas submit --profile production --platform android
|
||||||
|
|
||||||
|
# Submit to App Store
|
||||||
|
eas submit --profile production --platform ios
|
||||||
|
```
|
||||||
|
|
||||||
|
### OTA Updates (Without App Store Review)
|
||||||
|
|
||||||
|
Push updates directly to users without going through store review:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install expo-updates
|
||||||
|
npx expo install expo-updates
|
||||||
|
|
||||||
|
# Send update
|
||||||
|
eas update --branch production --message "Fix: improved search"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Useful Commands
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `eas build:list` | View previous builds |
|
||||||
|
| `eas build:cancel <id>` | Cancel a build |
|
||||||
|
| `eas submit:list` | View previous submissions |
|
||||||
|
| `eas update` | Send OTA update |
|
||||||
|
|
||||||
## 🐛 Troubleshooting
|
## 🐛 Troubleshooting
|
||||||
|
|
||||||
### Redis Connection Issues
|
### Redis Connection Issues
|
||||||
|
|||||||
Reference in New Issue
Block a user