Avancé60 min50 XP
Objectifs de cette leçon
- Configurer le build de production
- Publier sur App Store et Google Play
- Gérer les mises à jour via OTA
Publication et déploiement 🚀
L'étape finale : publier ton app sur l'App Store et le Play Store ! C'est comme organiser une grande fête d'inauguration pour ton app.
1. Les stores : App Store vs Play Store 🏪
text ' Pour publier sur l'App Store, il te faut : ' 1. Un Mac (ou EAS Build pour compiler dans le cloud) ' 2. Un compte développeur Apple (99€/an) ' 3. Xcode (IDE Apple) ' 4. Un certificat de développement + provisioning profile
' Étapes : ' 1. Créer ton app dans App Store Connect ' 2. Configurer les certificats et identifiants ' 3. Build l'app (Archive dans Xcode) ' 4. Soumettre via Transporter ou Xcode ' 5. Attendre la validation Apple... ``'
# Avec EAS Build (pas besoin de Mac !) eas build --platform ios --profile production # Télécharger le fichier .ipa # Et le soumettre via Transporter (app Mac) # Ou soumettre directement avec EAS Submit eas submit --platform ios ``' --- ## 3. Configuration Android 🤖 ```text ' Pour publier sur le Play Store : ' 1. Un compte développeur Google (25€) ' 2. Android Studio (optionnel) ' 3. Une clé de signature (keystore) ' 4. Un fichier .aab (Android App Bundle) ' Étapes : ' 1. Créer ton app dans Google Play Console ' 2. Configurer la fiche du store (description, images) ' 3. Signer l'app avec la clé keystore ' 4. Uploader le .aab ' 5. Remplir le questionnaire de classification ' 6. Publier ! ``' ```bash # Avec EAS Build eas build --platform android --profile production # Télécharger le fichier .aab # Uploader sur Google Play Console # Ou soumettre directement eas submit --platform android ``' --- ## 4. EAS Build & Submit — la solution Expo ☁️ ```text ' EAS = Expo Application Services ' Pas besoin de Mac ni d'Android Studio ! ' Tout se fait dans le cloud ' 1. eas build --platform all ' → Compile ton app sur les serveurs Expo ' → iOS : retourne un .ipa ' → Android : retourne un .aab ' 2. eas submit --platform all ' → Envoie le fichier directement sur les stores !
// eas.json — configuration des builds { "build": { "development": { "developmentClient": true, "distribution": "internal" }, "preview": { "distribution": "internal", "android": { "buildType": "apk" }, "ios": { "simulator": true } }, "production": { "distribution": "store" // ← Pour publier } } } // Profil "production" utilisé par : eas build --profile production
5. Mises à jour OTA (Over-The-Air) 🔄
' OTA = mettre à jour l'app SANS passer par les stores ! ' Avec Expo Updates : ' 1. Tu modifies du code JavaScript ' 2. npx expo export --platform web ' 3. Les utilisateurs recoivent la mise à jour ' sans même le savoir ! ' ⚠️ Limité au code JavaScript uniquement ' (pas de modules natifs, pas d'icônes, pas de splash screen) ' Parfait pour : corriger un bug, changer un texte, ajouter une fonctionnalité mineure ``' ```bash # Publier une mise à jour OTA npx expo export --platform web # Les utilisateurs existants verront la mise à jour # au prochain lancement ou rafraîchissement ``' --- ## 6. CI/CD pour mobile 🔄 yaml # .github/workflows/deploy.yml name: Deploy to Stores on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 - run: npm ci - run: npm test # ✅ Les tests passent d'abord - name: EAS Build run: npx eas build --platform all --profile production --non-interactive env: EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }} - name: EAS Submit iOS run: npx eas submit --platform ios --non-interactive env: EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }} - name: EAS Submit Android run: npx eas submit --platform android --non-interactive env: EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }} ``' --- ## 7. Checklist avant publication ✅ ```text ' AVANT de publier, vérifie TOUT ça : ' 📱 Fonctionnalités ' □ L'app ne plante pas au lancement ' □ Tous les boutons fonctionnent ' □ La navigation est fluide ' □ Les données se chargent correctement ' 🎨 Design ' □ L'app s'affiche bien sur différentes tailles d'écran ' □ Le mode sombre fonctionne (si implémenté) ' □ Les icônes et images sont de bonne qualité ' 📝 Store ' □ Icône de l'app (1024x1024) ' □ Captures d'écran (6.5", 5.5", 12.9" pour iOS) ' □ Description convaincante ' □ Mots-clés SEO ' □ Politique de confidentialité ' 🔧 Technique ' □ Aucune erreur dans les logs ' □ Gestion des cas hors-ligne ' □ Notifications push (si implémenté) ' □ Analytics en place ' □ Crash reporting (Sentry) ``' --- ## Exercices pour toi 🎯 1. **EAS Build** : crée un compte Expo, connecte-toi et lance `eas build --platform android --profile development` sur ton projet 2. **Fiche store** : rédige la description de ton app (titre, sous-titre, description, mots-clés) comme pour une vraie publication 3. **CI/CD** : configure une GitHub Action qui lance les tests au push et fait un EAS Build en préproduction
Création des variables pas à pas
Prêt à explorer la mémoire
Appuie sur Play pour voir les variables se créer une par une
0/5
Exécution pas à pas
0/7
Visualisation d'exécution
ligne 6code
1// 1. Configurer l'app dans app.json
2{
3 "expo": {
4 "name": "MonApp",
5 "version": "1.0.0",
6 "icon": "./assets/icon.png",
7 "splash": { "image": "./assets/splash.png" }
8 }
9}
10
11// 2. Builder
12// eas build --platform all --profile production
13
14// 3. Soumettre aux stores
15// eas submit --platform ios
16// eas submit --platform android
17
18// 4. Mise à jour OTA (sans store)
19// eas update --branch production --message "Fix bug connexion"
Variables
eas build=compile dans le cloud
eas submit=envoie aux stores
eas update=OTA sans store