Rollbacks
Remontées
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Une mise à jour en temps réel Capgo remplace votre paquet JavaScript instantanément, mais elle ne peut pas changer la partie native de votre application — les plugins __CAPGO_KEEP_0__/Cordova, les dépendances natives et la configuration du projet native qui sont compilés dans le fichier binaire installé. Lorsqu'un nouveau paquet attend des __CAPGO_KEEP_1__ natives que le fichier binaire installé n'a pas, le paquet est part of your app — the Capacitor/Cordova plugins, native dependencies, and native project configuration that are compiled into the installed binary. When a new bundle expects native code that the installed binary doesn’t have, the bundle is : __CAPGO_KEEP_0__ peut toujours le livrer, mais il peut planter ou se comporter de manière anormale sur les appareils qui exécutent toujours la version native plus ancienne.Install, synchronisez et suivez le guide de la source pour utiliser Capgo.
Cette page explique comment Capgo détecte la compatibilité native, ce que signifie une mise à jour incompatible pour vos utilisateurs, et comment livrer des changements natifs de manière sûre.
Chaque application Capacitor est livrée en deux couches :
Une mise à jour en direct n'échange que la couche JavaScript. Si ce nouveau JavaScript appelle un plugin natif ou API qui n'est pas compilé dans le code binaire installé, l'appel échoue en temps de exécution — ce qui peut faire planter l'application ou briser silencieusement une fonctionnalité. En résumé : Capgo ne peut pas mettre à jour les plugins natifs code, donc un appareil exécutant la version native ancienne ne peut pas exécuter en toute sécurité un bundle construit contre de nouveaux plugins natifs code.
Lorsque vous téléchargez un bundle — ou que vous exécutez la vérification manuellement — Capgo compare les packages natifs dans votre projet local (vos plugins Cordova Capacitor et leurs versions) avec les packages natifs enregistrés pour le bundle actuellement en ligne sur le canal:
bunx @capgo/cli@latest bundle compatibility com.example.app --channel productionLa CLI imprime une table de chaque paquet natif avec sa version locale, la version en direct sur le canal et un statut :
Package Local Remote Status@capacitor/core 6.1.2 6.1.2 ✅@capacitor/share 6.0.0 6.0.0 ✅@capacitor/camera 6.1.0 — ❌ not in the live bundlePour les pipelines, bundle releaseType réduit la vérification en une seule parole :
bunx @capgo/cli@latest bundle releaseType com.example.app --channel production# → OTA safe to ship as a live update# → native needs a new app-store buildGardez votre pipeline de mise en production sur cette ligne : envoyer une mise à jour en direct lorsque cela imprime OTAet déclenchez une construction native lorsque cela imprime native.
binaire natif plus ancien , la partie manquante du code __CAPGO_KEEP_0__ peut provoquer des plantages ou des fonctionnalités cassées — même si l'update a téléchargé et appliqué « avec succès ». C'est pourquoi une mise à jour en direct peut être en direct et livrée et encore casser l'application pour les utilisateurs existants, et pourquoi __CAPGO_KEEP_1__ peut vous avertir lorsque un bundle incompatibles est mis en ligne., the missing native code can cause crashes or broken features — even though the update downloaded and applied “successfully.” This is why a live update can be live and delivered yet still break the app for existing users, and why Capgo can warn you when an incompatible bundle goes live.
Capgo’s le rôle de rollback automatique peut capturer une erreur JavaScript lancée avant notifyAppReady() s'exécute, mais ce n'est pas un substitut pour la livraison de versions natives compatibles code — une incompatibilité qui fait crash plus tard, ou crash nativement, peut lui échapper.
Lorsqu'une bundle nécessite de nouvelles dépendances natives code, construire et soumettre une nouvelle version binaire sur l'App Store / Play Store (ou reconstruire avec Capgo Cloud Build). Une fois que les utilisateurs mettent à jour la version binaire, les dépendances natives de la bundle s'alignent et la mise à jour en direct fonctionne correctement.
Si une bundle incompatible est déjà active sur un canal, rétablir le canal sur la dernière version compatible pour arrêter de la servir jusqu'à ce que la version native soit disponible. Voir Rollbacks.
Deux garde-fous complémentaires, qui inspectent tous deux vos packages natifs :
Faire fail l'upload en CI — --fail-on-incompatible
Ajoutez la flag à votre bundle upload étape. Si les packages natifs du bundle ne correspondent pas à la version actuellement en ligne du canal, l'upload fail avec un code de sortie non nul et rien n'est expédié — afin que votre pipeline vous empêche de publier silencieusement une mise à jour OTA qui ne peut prendre effet que lorsque les utilisateurs installent une build native :
bunx @capgo/cli@latest bundle upload --channel production --fail-on-incompatibleLivraisons compatibles — et les cas où la vérification ne peut pas être exécutée (un nouveau canal, ou aucune métadonnée distante) — passent inaltérées. Dans un terminal interactif, elle propose au lieu de cela le flux de construction native-build du Capgo Builder ; refuser échoue. (Ne peut pas être combiné avec) --ignore-metadata-check.)
La livraison par version native — metadata + --auto-min-update-version
Lorsque vous faites envoyer la version native et le bundle ensemble, placez le canal sur la metadata stratégie et envoyez avec --auto-min-update-version. Capgo effectue la vérification de compatibilité à chaque envoi et, lorsque le bundle nécessite de nouvelles versions natives code, élèvez le niveau de mise à jour afin que les appareils qui n'ont pas installé la version native correspondante ne la reçoivent pas :
# one-time: switch the channel to the metadata strategybunx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata
# from then on, Capgo sets the floor automatically on every uploadbunx @capgo/cli@latest bundle upload --channel production --auto-min-update-versionCiblage de version pour l'ensemble des options de ciblage. Section liée intitulée « Section liée »
Rollbacks
Remontées
Ciblage de version
Rétablir un canal vers la dernière build compatible si un bundle incompatible est allumé.
Mise à jour des types
Comment les conditions de timing, de retard et de blocage de version fonctionnent ensemble.
CLI: bundle
Référence pour la compatibilité du bundle, releaseType et les options d'upload.
Compatibilité native pour garder les mises à jour en direct en sécurité, connectez-le avec Ciblage de version pour acheminer les bundles par version native, Si vous utilisez Rollbacks pour se rétablir lorsqu'un bundle incompatible est expédié, Types d'actualisation pour comprendre la version du canal bloquante, et les Capgo CLI référence du bundle pour les commandes de compatibilité et de releaseType.