Files
WalletTracker/DEPLOYMENT.md
Arthur Lempereur e99d00b83b Add deployment guide, contributing guidelines and changelog
- Add DEPLOYMENT.md with complete deployment instructions
- Add CONTRIBUTING.md for contributors
- Add CHANGELOG.md to track versions
- Add .env.example for environment variables
2025-10-23 14:42:11 +02:00

7.1 KiB

🚀 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

npm install -g eas-cli

Se connecter à Expo

eas login

Initialiser EAS Build

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 :

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

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

# 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

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

# 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

eas submit --platform android

Étape 5 : Configuration eas.json

Exemple de configuration complète :

{
  "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

eas update:configure

Publier une mise à jour

# 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 :
npm install @sentry/react-native
  1. Configurez dans App.tsx :
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)

# 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

# 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

# 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

# Nettoyer le cache
eas build:cancel
eas build --clear-cache --platform all

Update ne fonctionne pas

# Vérifier la configuration
eas update:list --branch production

Problèmes de certificats iOS

# 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


Bon déploiement ! 🎉