Windy.com - Prévisions météo
Application météo où les cartes, les alertes et la navigation nécessitent un déploiement progressif maîtrisé.
- Installations Google Play
- 32,9 M
- Note du store
- 4.7
Envoyez un nouveau bundle web depuis CLI ou votre CI. Les appareils le téléchargent en arrière-plan et l'exécutent lors du prochain passage de l'app au premier plan. Gérez le déploiement progressif par pourcentage, surveillez-le dans Observe et effectuez un rollback en cas de problème.
Essai gratuit illimité de 14 jours. Aucune carte bancaire requise Garantie de remboursement de 14 jours. Résiliable à tout moment.
Besoin d'une offre Enterprise ? Parler à notre équipe
Le problème
Identifier le bug
Le monitoring ou le support signale un écran cassé. Le correctif ne nécessite que quelques lignes de JavaScript ou de CSS.
Générer un nouveau binaire
Vous incrémentez la version, compilez pour iOS et Android, et préparez deux soumissions sur les stores.
Attente de la validation
La revue par les stores prend souvent 24 à 48 heures, parfois bien plus. Un rejet relance tout le processus d'attente.
Attendre la mise à jour des utilisateurs
Après l'approbation, chaque utilisateur doit encore installer la nouvelle version. D'ici là, ils utilisent l'ancien code.
Chaque étape rallonge le délai entre la disponibilité du correctif et son exécution sur les appareils de vos utilisateurs.
24–48h+
Temps de revue habituel des stores
Apple et Google examinent chaque nouveau binaire. La revue dure souvent 24 à 48 heures, parfois bien plus, et un rejet impose une nouvelle soumission.
Par utilisateur
Store updates depend on each device
Une mise à jour du store n'atteint un appareil que lorsque l'utilisateur, ou son paramètre de mise à jour automatique, l'installe. Certains appareils restent sur d'anciens builds pendant longtemps.
2 stores
Deux soumissions pour chaque correctif
Le même correctif web doit passer par l'App Store et Google Play séparément, chacun avec sa propre revue et sa propre release.
La solution
C'est le comportement de mise à jour par défaut de Capgo. Aucun prompt de mise à jour, aucun redémarrage forcé et aucune soumission aux stores pour les changements de la couche web.
Lorsque l'application passe au premier plan, et toutes les 10 minutes lorsqu'elle reste ouverte, l'updater demande à Capgo le dernier bundle du canal.
Au premier plan
Le nouveau bundle se télécharge pendant que l'utilisateur continue d'utiliser la version actuelle. Avec les delta updates, seuls les fichiers modifiés sont téléchargés.
Sans interruption
Lorsque l'utilisateur quitte l'application, l'updater installe le bundle. À la prochaine ouverture, la nouvelle version est lancée.
Prochain premier plan
Vous voulez que vos utilisateurs voient la nouvelle version dès l'ouverture ? Les modes de mise à jour directe l'appliquent au lancement, pendant l'affichage de l'écran de splash.
Voir les mises à jour directesComment ça marche
Une release type pour une app Capacitor déjà sur les stores. Chaque commande ci-dessous provient de la doc Capgo CLI.
Lancez l'assistant de configuration, puis assurez-vous que votre app appelle notifyAppReady() au démarrage. Un bundle qui n'effectue jamais cet appel fait un rollback automatique.
npx @capgo/cli@latest init
# in your app start-up code
await CapacitorUpdater.notifyAppReady()
Docs de notifyAppReady()
Utilisez --delta pour que les appareils ne récupèrent que les fichiers modifiés, et --rollout pour commencer avec un petit pourcentage d'appareils. Les autres restent sur le bundle stable.
npx @capgo/cli@latest bundle upload --channel production --delta --rollout 5
Docs sur le déploiement progressif
Activez l'auto-pause avec un seuil de taux d'échec (500 points de base correspondent à 5 %). Si les échecs dépassent ce seuil, Capgo effectue un rollback du déploiement. Vérifiez la nouvelle version dans Observe pendant l'exécution.
npx @capgo/cli@latest channel set production \
--auto-pause-enabled \
--auto-pause-failure-rate-bps 500 \
--auto-pause-action rollback
Consulter la doc Observe
Quand les chiffres sont bons, déployez le bundle sur tous les appareils du canal. Sinon, renvoyez la cohorte de déploiement vers la version stable.
npx @capgo/cli@latest channel set production --rollout-promote
# or, if something looks wrong
npx @capgo/cli@latest channel set production --rollout-rollback
Doc sur les rollbacks
Les outils que les équipes de production utilisent pour déployer souvent sans surprendre les utilisateurs.
Envoyez avec --delta et les appareils ne téléchargent que les fichiers modifiés depuis leur bundle actuel. Les assets volumineux qui changent rarement ne sont téléchargés qu'une seule fois.
--delta
Seuls les fichiers modifiés sont téléchargés
Envoyez un nouveau bundle à une fraction fixe et aléatoire d'un canal pendant que les autres restent sur le bundle stable. Augmentez le pourcentage, propagez-l’ou effectuez un rollback depuis le CLI ou la console.
1–5%
Une première étape de déploiement typique
Chaque mise à jour doit prouver qu'elle démarre. Si un nouveau bundle n'appelle pas notifyAppReady() à temps, l'appareil revient au dernier bundle fonctionnel et marque le nouveau comme échoué.
10 s
appReadyTimeout par défaut avant le rollback automatique
Capgo livre la couche web Capacitor : JavaScript, CSS et assets. Cela ne modifie pas le binaire natif, les plugins, les permissions, les entitlements ou les métadonnées du store. La validation par le store est spécifique à l'app, vous restez donc responsable de la conformité aux politiques et de l'approbation.
Gestion quotidienne des releases une fois les live updates en place. Chaque carte renvoie vers la doc.
A broken checkout or login screen gets a web-layer fix. Upload it and devices pick it up on their next update check.
Doc sur le comportement des mises à jourCorrigez les textes, mettez à jour l'aide ou remplacez des images et autres assets du bundle sans recompiler un nouveau binaire.
Docs de compatibilité nativeComparez un nouveau bundle avec le précédent : taux d'erreur, temps de lancement et de WebView, et marqueurs de déploiement par version.
Consulter la doc ObserveAprès avoir modifié le bundle d'un canal, envoyez une notification de mise à jour silencieuse pour que les appareils vérifient immédiatement au lieu d'attendre leur prochain passage au premier plan.
Envoyer une notification de mise à jourBloquez les mises à jour majeures sur un canal pour qu'un bundle nécessitant de nouveaux code natifs n'atteigne jamais un binaire plus ancien.
Docs sur le ciblage de versionChoisissez n'importe quel bundle précédent dans l'onglet History du canal pour le rendre à nouveau actif sur tous les appareils de ce canal.
Doc sur les rollbacksCapgo livre des live updates à des apps en production depuis 2021.
Trouvez la solution adaptée aux besoins de votre équipe
Apps développées avec Capacitor
La météo, la santé publique et les télécoms dépendent d'interfaces, d'alertes et de navigations précises. Les mises à jour en production permettent de déployer des correctifs d'interface approuvés tout en surveillant l'adoption avant de généraliser le déploiement.
Application météo où les cartes, les alertes et la navigation nécessitent un déploiement progressif maîtrisé.
Application de santé publique nécessitant des mises à jour rapides et fiables pour les conseils et les services.
Application de télécom où les alertes et l'interface du compte changent fréquemment.
Témoignages clients
Lead Developer, drivolino GmbH
« Le plugin Capgo Capacitor Updater a totalement transformé notre façon de déployer les mises à jour. Ce qui prenait des jours ne prend plus que quelques minutes. »
Fondateur, NuTriQ
“Pouvoir pousser instantanément des mises à jour OTA en production sans attendre les cycles complets de validation de l’App Store est un avantage opérationnel énorme.”
nethead emeritors
« Beau travail sur le plugin updater. Il fonctionne parfaitement pour moi, et les live updates sont un super accélérateur pour tester rapidement. »
FAQ
Comment les mises à jour atteignent les appareils et que faire en cas de problème.
Par défaut, l'app cherche des mises à jour lorsqu'elle passe au premier plan et toutes les 10 minutes lorsqu'elle reste ouverte. Elle télécharge le nouveau bundle en arrière-plan, l'installe quand l'utilisateur quitte l'app, et l'exécute lors de la prochaine ouverture. Le paramètre autoUpdate modifie ce comportement.
Doc sur le comportement des mises à jourOui. Après avoir modifié le bundle d'un canal, envoyez une notification de mise à jour depuis la console, ou ajoutez --send-update-notification lors de l'upload du bundle. Les appareils reçoivent une notification push silencieuse et vérifient immédiatement. Cela nécessite Capgo Notifications avec des identifiants push iOS et Android. La livraison est faite au mieux : une app hors ligne ou fermée de force vérifiera lors de son prochain lancement.
Envoyer une notification de mise à jourSi un nouveau bundle n'appelle pas notifyAppReady() sous 10 secondes (l'appReadyTimeout par défaut), l'appareil revient au dernier bundle fonctionnel et marque le nouveau comme échoué. Pour les bugs qui n'empêchent pas le démarrage de l'app, effectuez un rollback du déploiement progressif ou choisissez un bundle précédent dans l'historique du canal.
Doc sur les rollbacksUtilisez l'option --rollout pour envoyer le bundle à une fraction aléatoire et persistante du canal, pendant que les autres restent sur la version stable. Augmentez le pourcentage, propagez la version ou effectuez un rollback depuis CLI ou la console. L'auto-pause peut stopper le déploiement si le taux d'échec dépasse un seuil.
Docs sur le déploiement progressifLes live updates remplacent la couche web : JavaScript, HTML, CSS et les assets. Les plugins natifs, les mises à jour Capacitor, les changements dans capacitor.config et les fichiers de projet iOS ou Android nécessitent une release sur les stores. Capgo vérifie la compatibilité native des bundles lors de l'upload, et les canaux peuvent bloquer les mises à jour vers des binaires plus anciens.
Docs de compatibilité nativeTestez le flux complet sur votre propre application pendant l'essai : envoyez un bundle, lancez un déploiement progressif sur quelques appareils, puis effectuez un rollback.
support humain par Martin
Essai gratuit illimité de 14 jours. Aucune carte bancaire requise Garantie de remboursement de 14 jours. Résiliable à tout moment.
Besoin d'une offre Enterprise ? Parler à notre équipe