Allez directement au contenu principal

Alternative Cordova Hot Code Push en 2026

cordova-hot-code-push et CodePush pour Cordova sont morts. Voici une alternative Cordova hot code push maintenue avec des étapes de configuration, de migration et d'annulation.

Crédits de l'article

Martin Donadieu

Auteur

Valeria

Réviseur

Jordan

Éditeur

Alternative Cordova Hot Code Push en 2026

Si vous cherchez une alternative Cordova hot code push, c'est probablement parce que cordova-hot-code-push-plugin et Microsoft's CodePush pour Cordova ont cessé de fonctionner ou ne sont plus maintenus. Une option maintenue aujourd'hui est @capgo/cordova-updater, un plugin Cordova qui apporte des mises à jour en temps réel Capgo à des applications Cordova Android 13+ et iOS 7+, avec des canaux, l'annulation et des ensembles chiffrés, sans vous forcer à migrer vers Capacitor en premier.

État de Cordova live updates en 2026

cordova-hot-code-push est archivé

Le nordnet/cordova-hot-code-push Le dépôt est archivé sur GitHub. Le dernier code changement remonte à septembre 2018 et le dernier npm lancement de cordova-hot-code-push-plugin est 1.5.3. Il a été conçu pour les plateformes Cordova et le chargement de WebView basé sur des fichiers de cette époque. Le Cordova Android moderne sert l'application à partir d'un https://localhost à travers un gestionnaire de chemin, et Cordova iOS utilise WKWebView avec un app:// schéma. Un plugin qui suppose file:// le chargement ne correspond pas à ce modèle, et personne ne le met à jour.

Les installations existantes peuvent toujours sembler fonctionner si vous n'avez jamais mis à jour les plateformes Cordova. Voilà le piège : vous ne pouvez pas passer à un Cordova Android ou Xcode actuel sans risquer de mettre à jour le mécanisme.

CodePush pour Cordova est disparu

Microsoft a archivé cordova-plugin-code-pushEn 2022, Cordova a cessé de fonctionner dans App Center, et le service central d'App Center, y compris la construction, la distribution et CodePush, a été mis à la retraite le 31 mars 2025. Le plugin communiquait avec le service CodePush dans App Center, il n'y a donc plus de backend pour servir les mises à jour. Si vous avez migré vers l'hébergement autonome du serveur CodePush, vous dépendez toujours d'un plugin client archivé.

Ionic Appflow

cordova-plugin-ionic connected Cordova apps to Ionic Appflow live updates. Ionic has announced Appflow is being wound down, so teams on it are looking for a replacement too. We cover that path in the Quel remplaçant faut-il choisir.

Quel besoin remplace

Avant de choisir n'importe quel outil, vérifiez-le contre ces exigences :

Requirement Pourquoi cela compte
Fonctionne avec Cordova Android et iOS actuels Les exigences de magasin forcent les mises à jour de plateforme : Xcode 26 pour les téléchargements sur l'App Store depuis avril 2026, et des mises à jour ciblées Android annuelles API sur Google Play.
Aucune dépendance à cordova-plugin-ionic-webview Ce plugin est obsolète et entrave les gestionnaires de schéma modernes.
Rollback automatique Un mauvais bundle ne doit pas bloquer l'application
Canaux Testez sur les utilisateurs internes avant tout le monde.
Enveloppes signées ou chiffrées Empêche la manipulation de code transmis sur le réseau
Ciblage de version Ne renvoyez jamais du JavaScript nécessitant une coquille native plus récente
CLI amiable avec les CI Les releases devraient être une commande dans votre pipeline
Entretenu Check recent releases, not just stars

Capgo pour Cordova

@capgo/cordova-updater utilise le même JavaScript API que @capgo/capacitor-updater et le même Capgo serveur Cloud. Les paquets, les canaux, les statistiques et la signature fonctionnent de la même manière pour Cordova, Capacitor et les clients Electron.

Exigences

  • Cordova CLI 12+
  • Cordova Android 13+ (par défaut https://localhost/ scheme)
  • Cordova iOS 7+ (par défaut app://localhost/ scheme)
  • cordova-plugin-ionic-webview supprimé)

Vérifiez vos plateformes :

cordova platform ls

Mettez à jour si nécessaire :

cordova platform rm android && cordova platform add android@latest
cordova platform rm ios && cordova platform add ios@latest

Install

Créez l'application dans Capgo (tableau de bord ou CLI), puis ajoutez le plugin avec votre ID d'application :

bunx @capgo/cli@latest login
bunx @capgo/cli@latest app add com.example.app --name "My Cordova App"

cordova plugin add @capgo/cordova-updater --variable APP_ID=com.example.app
cordova prepare android ios

Vous pouvez définir plus d'options à l'heure de l'installation. Il s'agit de variables de plugin, donc exécutez cordova prepare après les avoir modifiées :

cordova plugin add @capgo/cordova-updater \
  --variable APP_ID=com.example.app \
  --variable DEFAULT_CHANNEL=production \
  --variable AUTO_UPDATE=atBackground \
  --variable APP_READY_TIMEOUT=10000

AUTO_UPDATE par défaut atBackgroundqui télécharge les mises à jour en arrière-plan et les applique la prochaine fois que l'application est mise en arrière-plan. atInstall, onLaunch et off pour un contrôle manuel complet.

Dites au plugin que l'application a démarré correctement

C'est la ligne que vous ne pouvez pas sauter. Appelez notifyAppReady() à chaque lancement après deviceready. Si un nouveau bundle ne l'appelle pas dans APP_READY_TIMEOUT millisecondes, le plugin le marque comme échoué et revient au dernier bundle fonctionnel.

document.addEventListener('deviceready', async () => {
  const { Updater } = cordova.plugins;
  await Updater.notifyAppReady();
}, false);

Appelle-l’après que votre application ait vraiment affiché son contenu, et non en haut de votre script, afin que si un bundle se bloque pendant le démarrage, il soit détecté.

Flux d'actualisation manuelle

Si vous définissez AUTO_UPDATE=offVous contrôlez quand vérifier, télécharger et appliquer :

document.addEventListener('deviceready', async () => {
  const { Updater } = cordova.plugins;
  await Updater.notifyAppReady();

  const latest = await Updater.getLatest();
  if (latest.url && !latest.error) {
    const bundle = await Updater.download({
      url: latest.url,
      version: latest.version,
      checksum: latest.checksum,
    });
    // Applied on next background/restart
    await Updater.next({ id: bundle.id });
  }
});

Les types TypeScript sont fournis avec le package :

import type { UpdaterPlugin } from '@capgo/cordova-updater';

declare const cordova: { plugins: { Updater: UpdaterPlugin } };

Publiez une mise à jour

Construissez votre www dossier et le téléchargez :

bun run build
bunx @capgo/cli@latest bundle upload com.example.app --path ./www --channel production

Placez-le dans la CI après vos tests. Le page d'actualisation en temps réel shows channel rollouts, stats and rollback from the dashboard.

Migrer à partir de cordova-hot-code-push

  1. Supprimer l'ancien plugin et sa configuration. Supprimer cordova-hot-code-push-plugin, la chcp section dans config.xml, et la cordova-hcp CLI et chcp.json / chcp.manifest la génération de votre build.
  2. Supprimer cordova-plugin-ionic-webview si présent, et tester que l'application fonctionne dans la vue par défaut de Cordova.
  3. Mettre à jour les plateformes Cordova vers Android 13+ et iOS 7+.
  4. Installer @capgo/cordova-updater et ajoutez notifyAppReady().
  5. Sortir un nouveau build de magasin. Les anciennes installations conservent l'ancien plugin. Seule la nouvelle version contient l'Capgo metteur à jour.
  6. Publiez votre premier bundle dans un canal de test, vérifiez-le sur les appareils, puis promouvez-l’en production.

Les utilisateurs qui ne mettent pas à jour depuis l'App Store restent sur le mécanisme ancien jusqu'à ce qu'ils le fassent. Gardez votre serveur d'actualisation ancien en ligne pendant la transition si cela fonctionne encore, ou acceptez que ces utilisateurs n'obtiennent pas d'actualisations OTA jusqu'à ce qu'ils installent la nouvelle version.

Migration de CodePush pour Cordova

  • Remplacez codePush.sync() par notifyAppReady() et soit le mode automatique ou le getLatest / download / next flux.
  • Remplacez les clés de déploiement par des canaux (DEFAULT_CHANNEL).
  • Remplacez code-push release-cordova par bunx @capgo/cli@latest bundle upload.
  • Supprimez le CodePushDeploymentKey Pour une version étape par étape ciblée aux utilisateurs d'App Center, consultez le config.xml.

Voir la version étape par étape conçue pour les utilisateurs d'App Center. Règles de sécurité et de magasin.

Chiffrement et signature.

  • Chiffrement et signature. Set PUBLIC_KEY à l'heure de l'installation et utilisez les clés de chiffrement du CLI , afin que les appareils ne reçoivent que des lots signés pour votre application.
  • Politiques d'Apple et de Google. Both allow updating interpreted code such as JavaScript over the air, as long as you do not change the app’s purpose or add features that would need review. Native code, new plugins and permission changes need a store release.
  • La cible de version. Si un bundle nécessite un plugin natif qui n'existe que dans une version binaire plus récente, ciblez-le vers cette version native. Les Capgo documents sur compatibilité live update expliquent comment.

Troubleshooting

Le paquet est téléchargé mais l'application affiche la version ancienne. Vous utilisez toujours cordova-plugin-ionic-webviewLe bundle est téléchargé mais l'application affiche la version ancienne.

App rolls back after every update. notifyAppReady() Vérifiez le console sur l’appareil et confirmez que l'appel s'exécute à chaque démarrage.

iOS build fails after platform upgrade. Cordova iOS 7+ nécessite une version actuelle d'iOS. Les téléchargements vers l'App Store nécessitent Xcode 26. Vous pouvez générer des actifs de signature avec le generateur de certificat iOS. Une fois que vous passez à Capacitor Capgo Construction Peut produire des builds iOS signés dans le cloud sans Mac local.

Updates work on Android but not iOS. Vérifiez que le schéma iOS est config.xml est la valeur par défaut app schéma avec localhost hostname.

Devez-vous passer à Capacitor ?

You do not have to. Capgo for Cordova exists so you can keep shipping while you decide. Capacitor brings a maintained native layer, Swift Package Manager on iOS, and a larger plugin ecosystem. When you are ready, keep the same Capgo app ID and channels and swap the client plugin. Our Guide de migration de Cordova vers Capacitor lui passe en revue.

Mises à jour instantanées pour les applications Capacitor.

Lorsqu'un bug de la couche web est en ligne, expédiez la correction à travers Capgo au lieu d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les changements natifs restent dans la voie de revue normale.

Dernières actualités de notre Blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.