# 🚀 Guide de déploiement - WalletTracker Ce guide explique comment déployer WalletTracker en production. ## Prérequis - Compte Expo (gratuit) : https://expo.dev/ - EAS CLI installé : `npm install -g eas-cli` - Compte développeur Apple (pour iOS) ou Google Play (pour Android) ## Étape 1 : Configuration EAS ### Installer EAS CLI ```bash npm install -g eas-cli ``` ### Se connecter à Expo ```bash eas login ``` ### Initialiser EAS Build ```bash eas build:configure ``` Cela créera un fichier `eas.json` avec la configuration de build. ## Étape 2 : Configurer les variables d'environnement ### Pour la production Créez un fichier `.env.production` : ```env FIREBASE_API_KEY=votre_clé_production FIREBASE_AUTH_DOMAIN=votre_domaine_production FIREBASE_PROJECT_ID=votre_projet_production FIREBASE_STORAGE_BUCKET=votre_bucket_production FIREBASE_MESSAGING_SENDER_ID=votre_sender_id FIREBASE_APP_ID=votre_app_id ``` ### Configurer les secrets EAS ```bash eas secret:create --scope project --name FIREBASE_API_KEY --value "votre_clé" eas secret:create --scope project --name FIREBASE_AUTH_DOMAIN --value "votre_domaine" # ... répétez pour toutes les variables ``` ## Étape 3 : Build pour iOS ### Configuration 1. Assurez-vous d'avoir un compte Apple Developer 2. Configurez votre Bundle Identifier dans `app.json` ### Lancer le build ```bash # Build de développement eas build --platform ios --profile development # Build de preview (TestFlight) eas build --platform ios --profile preview # Build de production eas build --platform ios --profile production ``` ### Soumettre à l'App Store ```bash eas submit --platform ios ``` ## Étape 4 : Build pour Android ### Configuration 1. Configurez votre package name dans `app.json` 2. Générez un keystore (EAS le fait automatiquement) ### Lancer le build ```bash # Build de développement eas build --platform android --profile development # Build de preview (Internal Testing) eas build --platform android --profile preview # Build de production eas build --platform android --profile production ``` ### Soumettre à Google Play ```bash eas submit --platform android ``` ## Étape 5 : Configuration eas.json Exemple de configuration complète : ```json { "cli": { "version": ">= 5.0.0" }, "build": { "development": { "developmentClient": true, "distribution": "internal", "ios": { "simulator": true } }, "preview": { "distribution": "internal", "ios": { "simulator": false } }, "production": { "env": { "FIREBASE_API_KEY": "$FIREBASE_API_KEY", "FIREBASE_AUTH_DOMAIN": "$FIREBASE_AUTH_DOMAIN", "FIREBASE_PROJECT_ID": "$FIREBASE_PROJECT_ID", "FIREBASE_STORAGE_BUCKET": "$FIREBASE_STORAGE_BUCKET", "FIREBASE_MESSAGING_SENDER_ID": "$FIREBASE_MESSAGING_SENDER_ID", "FIREBASE_APP_ID": "$FIREBASE_APP_ID" } } }, "submit": { "production": { "ios": { "appleId": "votre@email.com", "ascAppId": "1234567890", "appleTeamId": "ABCD123456" }, "android": { "serviceAccountKeyPath": "./google-service-account.json", "track": "production" } } } } ``` ## Étape 6 : Over-The-Air (OTA) Updates EAS Update permet de déployer des mises à jour sans passer par les stores. ### Configurer EAS Update ```bash eas update:configure ``` ### Publier une mise à jour ```bash # Pour la branche de production eas update --branch production --message "Fix bug XYZ" # Pour la branche de preview eas update --branch preview --message "New feature ABC" ``` ## Étape 7 : Monitoring et Analytics ### Sentry (erreurs) 1. Créez un compte sur https://sentry.io/ 2. Installez le SDK : ```bash npm install @sentry/react-native ``` 3. Configurez dans `App.tsx` : ```typescript import * as Sentry from '@sentry/react-native'; Sentry.init({ dsn: 'votre_dsn_sentry', enableInExpoDevelopment: false, debug: false }); ``` ### Firebase Analytics Déjà inclus avec Firebase. Activez-le dans la console Firebase. ## Étape 8 : Checklist avant déploiement ### Code - [ ] Tous les tests passent - [ ] Pas de console.log en production - [ ] Variables d'environnement configurées - [ ] Version incrémentée dans `app.json` - [ ] Changelog mis à jour ### Firebase - [ ] Règles Firestore en mode production - [ ] Règles Storage configurées - [ ] Quotas vérifiés - [ ] Backup configuré - [ ] Monitoring activé ### App Stores - [ ] Screenshots préparés - [ ] Description de l'app rédigée - [ ] Politique de confidentialité publiée - [ ] Conditions d'utilisation publiées - [ ] Icône et splash screen finalisés ### Sécurité - [ ] HTTPS uniquement - [ ] Pas de secrets hardcodés - [ ] Validation côté serveur (règles Firestore) - [ ] Rate limiting configuré - [ ] Authentification sécurisée ## Étape 9 : Déploiement progressif ### Phase 1 : Beta Testing (1-2 semaines) ```bash # Build preview eas build --platform all --profile preview # Inviter des beta testeurs eas build:list ``` ### Phase 2 : Soft Launch (1 mois) - Déployer dans un pays test - Monitorer les métriques - Corriger les bugs critiques ### Phase 3 : Production ```bash # Build production eas build --platform all --profile production # Soumettre aux stores eas submit --platform all ``` ## Étape 10 : Post-déploiement ### Monitoring - Surveiller les crashs (Sentry) - Analyser les métriques (Firebase Analytics) - Vérifier les performances (Firebase Performance) - Lire les reviews utilisateurs ### Mises à jour ```bash # Mise à jour mineure (bug fixes) eas update --branch production --message "Bug fixes" # Mise à jour majeure (nouvelles fonctionnalités) # Nécessite un nouveau build eas build --platform all --profile production ``` ## 📊 Métriques à surveiller - **DAU/MAU** : Utilisateurs actifs quotidiens/mensuels - **Retention** : Taux de rétention à J1, J7, J30 - **Crash rate** : Taux de crash < 1% - **Performance** : Temps de chargement < 3s - **Engagement** : Nombre de transactions par utilisateur ## 🔧 Dépannage ### Build échoue ```bash # Nettoyer le cache eas build:cancel eas build --clear-cache --platform all ``` ### Update ne fonctionne pas ```bash # Vérifier la configuration eas update:list --branch production ``` ### Problèmes de certificats iOS ```bash # Régénérer les certificats eas credentials ``` ## 💰 Coûts estimés ### Gratuit - Expo (plan gratuit) : Builds limités - Firebase (plan Spark) : Limité mais suffisant pour débuter ### Payant - Apple Developer : 99€/an - Google Play : 25€ (une fois) - Expo (plan Production) : ~29$/mois (builds illimités) - Firebase (plan Blaze) : Pay-as-you-go ## 📚 Ressources - [EAS Build Documentation](https://docs.expo.dev/build/introduction/) - [EAS Submit Documentation](https://docs.expo.dev/submit/introduction/) - [EAS Update Documentation](https://docs.expo.dev/eas-update/introduction/) - [App Store Guidelines](https://developer.apple.com/app-store/review/guidelines/) - [Google Play Guidelines](https://play.google.com/about/developer-content-policy/) --- **Bon déploiement ! 🎉**