Aller au contenu principal

How to Update Files in Capacitor Apps

Découvrez comment mettre à jour instantanément les fichiers de vos apps Capacitor avec les live updates. Évitez les délais des stores et déployez vos correctifs JS, CSS et assets directement auprès de vos utilisateurs.

How to Update Files in Capacitor Apps

Déployez des correctifs Capacitor sans les délais des stores

Votre page de paiement présente un problème d'alignement CSS à 8h du matin. La panique commence : il vous faut une release iOS, une release Android, des rebuilds natifs et des jours de validation. C'est désormais terminé.

Générez un nouveau bundle web, envoyez-le sur un canal Capgo contrôlé, et les appareils compatibles le téléchargent sans jamais passer par la file d'attente de validation d'un store. CSS, JavaScript, copy, and asset fixes can reach users in minutes, tandis que les changements natifs suivent toujours le parcours classique de release binaire.

Table of Contents

Quand privilégier une mise à jour de fichiers

Un live update est idéal quand votre shell natif est stable mais que la couche web nécessite une intervention. Ce problème d'alignement CSS ? Corrigez la feuille de style, reconstruisez les assets web et publiez un bundle signé. Dès 9h — soit une heure après l'apparition du bug — vos utilisateurs reçoivent le correctif au prochain lancement de l'app. Capgo applique le bundle via son updater sans toucher au binaire natif.

Un jeune professionnel avec des lunettes travaillant sur un ordinateur portable à un bureau en bois avec un téléphone mobile.

Voici comment je décide de la marche à suivre :

  • Utiliser un live update pour le comportement JavaScript, le CSS, le texte, la configuration et les assets compatibles.
  • Utiliser une release native pour les changements de plugin, les permissions, les dépendances natives ou les fonctionnalités au niveau de l'OS.
  • Tester via un canal avant de déployer la correction à tous vos clients.
Type de release Usage typique Impact utilisateur
Package natif Nouvelle capacité native Téléchargement et revue sur le store
Bundle web en direct Correctif compatible urgent Mise à jour au lancement de l'app

Gardez les couches native et web compatibles. Un bundle en direct ne peut pas introduire en toute sécurité des API natives absentes du binaire installé. Si vous ajoutez un nouveau plugin ou modifiez les permissions, cela nécessite un build natif — il n'y a pas d'autre solution.

Pour une séquence de déploiement étape par étape, je vous recommande de lire ce guide pour déployer des hotfixes Capgo. Il explique comment passer d'une correction testée à une release contrôlée sans utiliser vos utilisateurs en production comme équipe QA.

Avant de commencer à déployer des mises à jour en production, assurez-vous que vos builds locaux sont stables. Installez Capgoson plugin d'updater open source, puis ajoutez son package TypeScript pour que votre éditeur reconnaisse les méthodes d'updater au lieu d'afficher des erreurs de type. Pour les projets Capacitor, leur guide de configuration d'un environnement Capacitor local mérite d'être mis en favoris — il explique comment préparer un espace de travail propre.

Un ordinateur portable moderne sur un bureau montrant un processus de build logiciel terminé avec une checklist à proximité.

Gardez vos assets web prévisibles

Votre bundle live ne contient que les assets web compilés — pas les fichiers sources arbitraires que vous pourriez modifier. Configurez votre projet pour que la commande de build génère toujours le JavaScript, le CSS, l'HTML et les assets compatibles dans le même www ou public répertoire référencé par la shell native.

Voici comment cela se passe en pratique : après avoir modifié une feuille de style, lancez votre build web habituel, puis inspectez le répertoire de sortie pour confirmer que les fichiers générés ont bien remplacé les versions précédentes. N'éditez jamais les fichiers compilés manuellement — le prochain build les écrasera silencieusement, et vous perdrez vos modifications sans vous en rendre compte.

Un live update ne peut livrer que ce que votre build web inclut. Si le correctif est absent de www ou public, l'appareil ne peut tout simplement pas le recevoir.

Configurez des canaux distincts pour le développement, le staging et la production. Un build de développement ne devrait jamais pointer vers le canal de production, surtout quand plusieurs membres de l'équipe testent des bundles inachevés simultanément.

  • Développement détecte les imports cassés et les assets manquants avant qu'ils ne se propagent.
  • Staging verifies real device behavior with release-like settings.
  • Production ne sert que des bundles approuvés et testés — rien d'expérimental.

Vérifiez le bundle avant la publication

Effectuez une courte vérification d'intégrité avant tout upload. Cela permet de détecter la plupart des problèmes qui, autrement, atteindraient vos utilisateurs :

  1. Supprimez l'ancien build, puis créez un nouveau build propre.
  2. Confirmez que le fichier corrigé existe bien dans le répertoire de sortie.
  3. Testez la navigation, la connexion, le mode hors ligne et les appels de plugins natifs — pas seulement la fonctionnalité modifiée.
  4. Installez le bundle sur des appareils de test iOS et Android.
  5. Notez le canal et la version du bundle utilisés lors des tests pour pouvoir reproduire les problèmes plus tard.

Les équipes Electron peuvent appliquer la même discipline : buildez les assets du renderer séparément, puis confirmez que l'application packagée pointe vers le répertoire de sortie prévu. Les API typées et les contrôles de canal de Capgo facilitent la répétition de ce workflow, mais ne remplacent pas les tests de compatibilité réels. Si un changement nécessite un nouveau plugin natif ou une permission, publiez un nouveau binaire au lieu d'essayer de le déployer via un live update — l'updater ne peut pas modifier le code natif de lui-même.

Réussir les mises à jour de fichiers dans Capacitor et les apps Electron repose sur un seul élément : un artefact de release ultra-fiable. Buildez votre couche web à partir du commit exact que vous avez déjà testé, puis vérifiez que tout votre JavaScript, CSS, HTML et assets se trouvent dans www ou public comme prévu. Si vous travaillez avec Electron, buildez le renderer séparément et vérifiez que la coquille packagée pointe bien vers cette sortie.

Créer un bundle vérifiable

Avant même de penser à l'upload, supprimez tout ancien build et relancez un build de production propre. Notez le hash du commit, la version du bundle, le canal cible et la version de l'app native associée. Ces détails vous éviteront des heures de recherche quand quelque chose ne correspondra pas plus tard.

Vérifiez toujours le bundle sur de vrais appareils — des iPhones, des téléphones Android ou des installations Electron. Testez la connexion, la navigation, le mode hors ligne et chaque plugin natif qui interagit avec les fichiers que vous venez de mettre à jour. Réussir l'upload vers votre serveur de mise à jour ne sert à rien si l'appareil ne peut pas exécuter ce que vous avez envoyé.

La signature donne une empreinte cryptographique à votre artefact. L'updater s'appuie sur cette signature pour confirmer que le bundle provient de votre pipeline de release sans avoir été modifié. Stockez vos identifiants de signature totalement en dehors du repo, limitez les accès et faites une rotation selon le calendrier exigé par votre politique de sécurité.

Un bundle signé ne remplace pas les tests. La signature prouve l'origine de l'artefact et qu'il n'a pas été altéré — elle ne garantit en rien que votre app fonctionnera réellement avec.

Pour avoir une vue d'ensemble, je vous recommande de lire le guide de Capgo sur la sécurité de bout en bout et la signature code.

Publier via des canaux contrôlés

Une fois votre bundle signé prêt, uploadez-le sur Capgo et assignez-l’à un canal adapté à votre stratégie de déploiement progressif. Voici les plus utiles pour votre quotidien :

  • Bêta — pour le personnel interne et les testeurs sélectionnés
  • Staging — pour valider dans un environnement proche de la production avant que les utilisateurs réels ne le voient
  • Production — pour l'audience approuvée
  • Canaux spécifiques aux clients — quand différents tenants ont besoin de leur propre timing de mise à jour indépendant

Voici un scénario très courant : une équipe fintech repère un libellé de paiement erroné en production. Ils envoient le bundle JS corrigé vers un canal interne, vérifient le checkout sur quelques appareils, puis promeuvent ce même artefact testé vers un petit segment de production avant un déploiement plus large. Ces garde-fous par canal empêchent un correctif précipité de se transformer en incident majeur.

Après la publication, analysez les logs par appareil plutôt que de vous fier uniquement au statut agrégé du dashboard. Vous devez confirmer que la bonne version de l'app a récupéré le bundle, que la signature a été validée, que l'installation s'est terminée proprement et que le lancement suivant a bien chargé les nouveaux fichiers.

Si des appareils signalent des incohérences, mettez immédiatement ce canal en pause et comparez côte à côte la version du bundle, la compatibilité native, la clé de signature et l'assignation du canal. N'élargissez la distribution que lorsque les logs sont propres sur votre groupe de test, et gardez toujours le bundle précédent pour un rollback.

Une fois que vos builds locaux tournent sans accroc, il est temps d'intégrer la publication dans votre pipeline CI/CD. L'objectif est simple : build de vos assets web, signature du bundle et publication automatique après le passage des tests. Plus d'uploads manuels. Plus besoin de se demander comment mettre à jour les fichiers après un merge — le processus s'en occupe.

Voici à quoi ressemble un pipeline concret en pratique :

  • Lancez le job lorsqu'une branche de release est fusionnée dans votre branche cible.
  • Installez les dépendances et générez un www ou public build propre.
  • Exécutez votre suite de tests complète — tests unitaires, tests d'intégration et smoke tests sur appareil.
  • Signez le bundle en utilisant les credentials stockés dans votre gestionnaire de secrets CI.
  • Envoyez vers un canal beta ou staging via l'API public de Capgo.
  • Une fois les validations réussies, propagez exactement le même artefact. Ne le recompilez pas.

Un point important à répéter : ne committez jamais de clés de signature ou de tokens API dans votre repo. Stockez-les comme variables d'environnement protégées, limitez la publication en production aux branches approuvées, et loguez chaque release avec la version du bundle, le hash du commit, la version de l'app native et le canal de destination. Le guide d'intégration des Capgo de Guide d'intégration des actions GitHub vous explique comment configurer tout cela de bout en bout.

Une infographie en quatre étapes illustrant le processus de build, de signature, de publication et de validation des bundles web pour la distribution.

Ce qu'il faut retenir, c'est que la validation fait partie intégrante du processus de livraison. La publication n'est pas la ligne d'arrivée. Votre pipeline doit confirmer que les appareils ciblés ont bien reçu et accepté le bundle.

Réduisez les coûts de transfert avec les mises à jour différentielles

Déployer des bundles complets à chaque fois est un gaspillage — surtout quand une release ne modifie qu'une feuille de style ou quelques modules JavaScript. Activez la livraison différentielle pour que les appareils ne téléchargent que les fichiers modifiés. Assurez-vous simplement de tester la gestion des assets supprimés ou renommés, sinon vous aurez une mauvaise surprise en production.

Une agence que j'ai accompagnée a réduit ses coûts de bande passante moyens de 47% après être passée de bundles complets à la livraison incrémentale. Le vrai gain a été pour les utilisateurs sur des connexions lentes, où des téléchargements plus petits signifiaient aussi des temps d'installation nettement plus rapides.

Je recommande également d'utiliser des canaux séparés pour contrôler votre exposition :

  • Bêta reçoit les builds internes et recueille les retours des testeurs.
  • Staging reproduit les paramètres de production sans impact client.
  • Production commencez petit avec une audience limitée avant de passer à l'échelle.
  • Canaux clients permettent d'isoler les releases spécifiques à chaque client.

Promouvez un artefact testé — ne le recompilez pas entre les étapes. Recompiler pour chaque environnement introduit du drift, et vous vous retrouvez soudain à débugger des différences qui ne devraient pas exister.

Pour une application fintech par exemple, le flux pourrait ressembler à ceci : publiez d'abord pour les employés, puis déployez auprès de 5 % des utilisateurs éligibles, inspectez les logs par appareil, et n'élargissez que lorsque l'adoption semble saine et que le taux d'échec reste stable. Et gardez toujours le bundle précédent sous la main. Si quelque chose tourne mal, vous devez pouvoir mettre en pause ou faire un rollback en quelques minutes, pas en quelques heures.

Publier un bundle n'est qu'une étape intermédiaire. Pour confirmer que les utilisateurs reçoivent bien la mise à jour, ouvrez les logs par appareil de Capgo et vérifiez la version native, le canal, la version du bundle, la validation de la signature, le statut du téléchargement et le résultat de l'installation.

Un déploiement progressif sain doit montrer des lancements réussis après l'installation, et pas seulement des téléchargements terminés. Pour un correctif de checkout, testez un vrai flux d'achat sur plusieurs appareils, puis comparez ces résultats avec les rapports d'utilisateurs sur des connexions plus lentes ou des versions d'app plus anciennes.

Un homme assis à un bureau regardant un écran d'ordinateur affichant des analyses et des logs de gestion d'appareils.

Lisez clairement les signaux de mise à jour

Utilisez les métriques d'adoption et d'échec conjointement. Un taux de téléchargement élevé accompagné de lancements échoués indique un bundle corrompu, tandis qu'une faible adoption peut signaler un ciblage de canal incorrect, des appareils hors ligne ou un problème de configuration de l'updater.

Signal Signification habituelle
Téléchargé L'appareil a récupéré le bundle
Installé Les fichiers ont passé les tests d'installation
Lancé avec succès The app opened with the new files
Rollback effectué Le dernier bundle stable a été restauré

Suivez les lancements réussis, pas seulement les téléchargements. Une mise à jour n'est opérationnelle que lorsque les utilisateurs peuvent ouvrir et utiliser l'app normalement.

La protection automatique par rollback de Capgo offre un filet de sécurité lorsqu'un nouveau bundle provoque des crashs ou empêche le démarrage. Gardez la version précédente disponible, mettez en pause le canal affecté et analysez les logs avant de promouvoir un autre artefact.

La gestion des versions vidéo partage des points communs avec la surveillance des mises à jour de fichiers et la gestion des rollbacks dans les pipelines de distribution en direct ; les équipes peuvent donc trouver ces idées utiles lorsqu'elles gèrent les versions de vidéos de formation.

Vérifier la release

Utilisez cette courte checklist post-release :

  • Confirmez l'adoption par canal et par version d'app.
  • Examinez les téléchargements échoués, les erreurs de signature et les échecs de lancement.
  • Testez le workflow modifié sur des appareils physiques.
  • Comparez l'heure des erreurs avec l'horodatage de la release.
  • Pause distribution if failures rise unexpectedly.
  • Enregistrez le bundle final, le commit et la décision de rollback.

Pour plus de conseils, lisez comment surveiller les mises à jour OTA dans les apps Capacitor. Cela transforme la mise à jour de fichiers d'une simple tâche de publication en un processus opérationnel contrôlé.

Do Live Updates Follow Store Rules?

Les Live Updates sont idéaux pour JavaScript, CSS, modifications de copie, ajustements de configuration et assets compatibles. Ils ne sont pas une porte dérobée pour ajouter des capacités natives, modifier des permissions ou contourner la revue des stores. Vérifiez toujours les politiques d'Apple et de Google pour votre catégorie d'app spécifique avant de publier quoi que ce soit.

How Do Differential Updates Reduce Downloads?

La livraison différentielle n'envoie que les fichiers qui ont réellement changé plutôt que l'intégralité du bundle web. Si vous modifiez une feuille de style sur votre page de paiement, il est inutile de retransmettre tous les autres assets non liés. Cela signifie des transferts plus rapides et moins de bande passante consommée.

Gardez toutefois un œil sur les fichiers renommés ou supprimés. Des assets obsolètes provenant de versions précédentes peuvent générer des bugs étranges et difficiles à tracer.

Même les petits patchs nécessitent des tests de compatibilité complets. Un téléchargement plus léger ne dispense pas de vérifier l'intégralité du parcours utilisateur.

Que se passe-t-il quand un appareil est hors ligne ?

Un appareil hors ligne continue simplement d'exécuter le bundle installé. Dès que la connectivité revient, l'updater vérifie le canal assigné et récupère la dernière release compatible. Ne partez pas du principe que chaque appareil se met à jour immédiatement : les équipes sur le terrain avec un accès instable peuvent accuser un certain retard.

Comment gérer les breaking changes ?

Considérez le binaire natif et le bundle web comme une paire indissociable. Si vos fichiers web mis à jour appellent une méthode native qui n'existe pas dans le binaire actuellement installé, vous devez d'abord déployer une nouvelle release native, puis pousser la mise à jour web par-dessus.

Utilisez des canaux distincts pour la bêta, le staging et la production. Vérifiez bien que chaque appareil reçoit le canal prévu. En cas d'erreur de signature (signature mismatch), cela indique généralement des artefacts altérés, des identifiants incorrects ou un problème de config. Suspendez la distribution, comparez ce que vous avez publié avec ce que vous avez testé, et analysez les logs des appareils avant de réessayer.

Pour un workflow de déploiement pratique, explorez Capgo — il vous offre des releases signées, le contrôle des canaux, la livraison différentielle et la protection contre les rollbacks pour mettre à jour vos fichiers sans prise de tête.

Live updates pour les apps Capacitor

Quand un bug de la couche web est en production, déployez le correctif via Capgo au lieu d'attendre des jours l'approbation des stores. Les utilisateurs reçoivent la mise à jour en arrière-plan, tandis que les changements natifs suivent le circuit de validation habituel.

Les derniers articles du blog

Capgo vous apporte les meilleures informations pour créer une application mobile vraiment professionnelle.