Passer à la navigation

Mises à jour Delta

Le système de Capgo pour Live Update peut livrer des mises à jour plus rapidement et de manière plus efficace en envoyant uniquement les fichiers modifiés, plutôt que le bundle JS entier.

Cela est particulièrement bénéfique pour les utilisateurs sur des connexions réseau plus lentes ou facturées, car cela minimise la quantité de données qui doivent être téléchargées.

Un deuxième avantage est lorsque l'application a des actifs importants qui changent rarement, comme des images ou des vidéos, comparés aux fichiers JS zippés, ils seront téléchargés qu'une seule fois.

Les mises à jour Delta (manifest) dans Capgo sont gérées par le plugin Capgo installé dans votre application. Lorsque vous publiez une nouvelle version de votre application en utilisant le --delta flag, Capgo effectue les opérations suivantes :

  1. Chaque fichier de votre build est téléchargé individuellement
  2. Les checksums sont générés pour chaque fichier
  3. Un nouveau manifeste json est créé, listant tous les fichiers et leurs sommes de contrôle
  4. Ce manifeste est téléchargé dans la base de données Capgo

Lorsqu'un appareil exécutant votre application vérifie une mise à jour, le plugin Capgo reçoit le nouveau manifeste du serveur. Il compare ce manifeste à celui qu'il possède actuellement, identifiant les fichiers qui ont changé en fonction des sommes de contrôl’et des chemins de fichiers.

Le plugin télécharge ensuite uniquement les fichiers modifiés, au lieu du bundle JS entier. Il reconstitue la nouvelle version de l'application en combinant ces fichiers téléchargés avec les fichiers inchangés qu'il possède déjà.

Activer les mises à jour Delta (Manifeste)

Sous-titre : Activer les mises à jour Delta (Manifeste)

Pour activer les mises à jour Delta (manifeste) pour votre application Capgo, utilise simplement le --delta flag lors de l'upload d'une nouvelle version :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --delta

Si autoUpdate Mode d'application instantané est défini."atInstall", "onLaunch"ou "always") dans votre capacitor.config, le CLI le détecte. Dans les environnements non interactifs, il envoie automatiquement des mises à jour Delta (manifeste), et dans les environnements interactifs, il vous invite à confirmer avant de télécharger. La configuration legacy est toujours détectée. Utilisez directUpdate config est toujours détecté. Utilisez --no-delta pour forcer une mise à jour de bundle complète.

  • Fichiers vides : Les journaux CLI Ignoring empty file... et exclut les fichiers de taille zéro du manifeste Delta. Il ne fait pas fail l'upload, donc l'ajout d'un fichier vide peut modifier le bundle résultant sans arrêter votre déploiement. N'incluez pas les fichiers de taille zéro dans les chemins de bundle Delta.
  • Espaces dans les chemins : Les mises à jour Delta échouent avant d'uploader les fichiers lorsque un chemin de bundle contient un espace. Renommez le fichier ou le répertoire pour supprimer les espaces avant d'uploader une mise à jour Delta.

Si vous souhaitez vous assurer que toutes les téléchargements sont des mises à jour Delta (manifeste) et empêcher tout téléchargement de bundle complet par erreur, vous pouvez utiliser le --delta-only flag :

fenêtre de terminal
npx @capgo/cli@latest bundle upload --delta-only

Lorsque --delta-only est utilisé, Capgo ne téléchargera que des fichiers individuels et générera un manifeste. Toute appareil qui ne prend pas en charge les mises à jour Delta (manifeste) ne pourra pas télécharger la mise à jour.

Vous pourriez vouloir utiliser --delta-only si :

  • Vous souhaitez toujours utiliser les mises à jour Delta (manifest) et ne jamais autoriser les téléchargements de bundles complets.
  • Vous configurez un pipeline CI/CD et souhaitez vous assurer que toutes les mises en ligne automatiques sont des Delta (manifeste).
  • Votre application est grande et la bande passante est limitée, vous devez donc minimiser les tailles de téléchargement/telechargement

Si vous devez effectuer une mise à jour complète de votre bundle, --delta-only est activé, simplement exécutez la commande de téléchargement sans --delta-onlyCela annulera la configuration pour cette seule opération, vous permettant de pousser un bundle complet lorsque nécessaire.

Si les mises à jour Delta (manifeste) ne semblent pas fonctionner (c'est-à-dire que les appareils téléchargent toujours le bundle JS complet même pour de petites modifications), vérifiez que :

  • Vous utilisez le --delta flag à chaque fois que vous publiez une nouvelle version
  • Si vous utilisez --delta-onlyAssurez-vous de n'avoir pas omis par inadvertance les. --delta flag
  • Votre appareil exécute la dernière version du plugin Capgo
  • Votre appareil dispose d'une connexion réseau stable et peut atteindre les serveurs Capgo

Vous pouvez également utiliser l'application web Capgo pour vérifier les détails de votre dernière mise à jour :

  1. Allez à la webapp
  2. Cliquez sur votre application
  3. Cliquez sur le nombre de bundles de la barre de statistiques.
  4. Sélectionnez le dernier bundle
  5. Vérifiez le Partial champ type de bundle

Si vous continuez à rencontrer des difficultés, veuillez contacter le support Capgo pour obtenir une aide supplémentaire. Ils peuvent vérifier les journaux du serveur pour confirmer que vos Delta (manifest) sont traités correctement et que les appareils reçoivent les manifestes mis à jour.

C'est tout ! La --delta drapeau indique à Capgo de procéder aux téléchargements de fichiers individuels et à la génération de manifestes nécessaires aux mises à jour Delta (manifeste).

Notez que vous devez utiliser --delta chaque fois que vous téléchargez une nouvelle version que vous souhaitez être livrée sous forme de mise à jour Delta (manifeste). Si vous omettez le drapeau, Capgo téléchargera l'ensemble du bundle JS sous forme de fichier unique, et les appareils téléchargeront l'ensemble du bundle même si seulement une petite partie a changé.

Si vous utilisez Mises à jour Delta pour planifier la livraison live update, la connecter avec pour planifier la livraison Capgo, connectez-l’à for the product workflow in Capgo Live Updates, Overview pour les détails d'implémentation dans Vue d'ensemble Vue d'ensemble pour le détail d'implémentation dans Vue d'ensemble, Mise à jour pour les détails d'implémentation dans le Comportement de mise à jour. Types de mise à jour pour les détails d'implémentation dans les types d'actualisation.