Zum Hauptinhalt springen

Cordova Hot-Code-Push-Alternative für 2026

cordova-hot-code-push und CodePush für Cordova sind tot. Hier ist eine gepflegte Alternative zu Cordova Hot code Push – mit Setup, Migrationsschritten und Rollback.

Cordova-Logo-Illustration für einen Guide zu Alternativen für Cordova Hot code Push

Wenn du nach einer Alternative zu Cordova Hot code Push suchst, liegt das wahrscheinlich daran, dass cordova-hot-code-push-plugin und Microsofts CodePush für Cordova beide nicht mehr funktionieren oder nicht mehr gepflegt werden. Eine heute noch gepflegte Option ist @capgo/cordova-updater, ein Cordova-Plugin, das Capgo Live Updates für Cordova Android 13+ und Cordova iOS 7+ Apps bereitstellt – mit Channels, Rollback und verschlüsselten Bundles – ohne dass Sie vorher zu Capacitor migrieren müssen.

Der Stand von Cordova Live Updates 2026

cordova-hot-code-push ist archiviert

Der nordnet/cordova-hot-code-push Repository ist auf GitHub archiviert. Die letzte code-Änderung war im September 2018, das letzte npm-Release von cordova-hot-code-push-plugin ist 1.5.3. Es wurde für die Cordova-Plattformen und das damalige dateibasierte WebView-Laden entwickelt. Modernes Cordova Android liefert die App https://localhost über einen Path Handler aus, und Cordova iOS nutzt WKWebView mit einem app:// Scheme. Ein Plugin, das davon ausgeht, file:// loading passt nicht zu diesem Modell, und niemand aktualisiert es.

Bestehende Installationen scheinen möglicherweise noch zu funktionieren, wenn du die Cordova-Plattformen nie aktualisierst. Das ist die Falle: Du kannst nicht zu einem aktuellen Cordova Android oder Xcode wechseln, ohne das Update-Mechanismus zu gefährden.

CodePush für Cordova ist weg

Microsoft hat cordova-plugin-code-pushdie Cordova-Unterstützung in App Center 2022 eingestellt und den Kern-App-Center-Service, einschließlich Build, Distribution und CodePush, am 31. März 2025 eingestellt. Das Plugin kommunizierte mit dem CodePush-Service in App Center, daher gibt es keinen Backend-Server mehr, der Updates bereitstellt. Wenn du auf einen selbst gehosteten CodePush-Server umgestiegen bist, bist du immer noch von einem archivierten Client-Plugin abhängig.

Ionic Appflow

cordova-plugin-ionic verknüpfte Cordova-Apps mit Ionic Appflow Live Updates. Ionic hat angekündigt, Appflow einzustellen, daher suchen auch Teams, die es nutzen, nach einer Alternative. Wir behandeln diesen Weg in der Appflow-Alternativen-Guide.

Was eine Alternative braucht

Bevor du ein Tool auswählst, prüfe es anhand dieser Anforderungen:

Voraussetzung Warum das wichtig ist
Funktioniert mit aktuellen Cordova-Android- und iOS-Versionen Store-Vorgaben erzwingen Plattform-Updates: Xcode 26 für App-Store-Uploads ab April 2026 und jährliche Android-Target-API-Erhöhungen auf Google Play
Keine Abhängigkeit von cordova-plugin-ionic-webview Dieses Plugin ist veraltet und kollidiert mit modernen Scheme-Handlern
Automatischer Rollback Ein fehlerhaftes Bundle darf die App nicht lahmlegen
Kanäle Vor dem Rollout an alle intern testen
Signierte oder verschlüsselte Bundles Verhindert Manipulationen an code, die über das Netzwerk ausgeliefert werden
Version Targeting Nie JavaScript senden, das eine neuere Native-Shell benötigt
CI-freundliches CLI Releases sollten ein einzelner Befehl in Ihrer Pipeline sein
Gepflegt Schauen Sie sich aktuelle Releases an, nicht nur Sterne

Capgo für Cordova

@capgo/cordova-updater verwendet dasselbe JavaScript-API wie @capgo/capacitor-updater und derselben Capgo Cloud-Backend. Bundles, Kanäle, Statistiken und Signierung funktionieren bei Cordova-, Capacitor- und Electron-Clients auf die gleiche Weise.

Anforderungen

  • Cordova CLI 12+
  • Cordova Android 13+ (Standard https://localhost/ scheme)
  • Cordova iOS 7+ (Standard app://localhost/ scheme)
  • cordova-plugin-ionic-webview entfernt

Prüfe deine Plattformen:

cordova platform ls

Upgraden, falls nötig:

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

Installieren

Erstelle die App in Capgo (Dashboard oder CLI) und füge das Plugin mit deiner App-ID hinzu:

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

Du kannst weitere Optionen bei der Installation festlegen. Da es sich um Plugin-Variablen handelt, führe aus cordova prepare nach Änderungen:

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 ist standardmäßig atBackground, das Updates im Hintergrund herunterlädt und sie beim nächsten Hintergrundwechsel der App anwendet. Weitere Modi umfassen atInstall, onLaunch und off für vollständige manuelle Kontrolle.

Sag dem Plugin, dass die App korrekt gestartet ist

Das ist die eine Zeile, die du nicht überspringen kannst. Rufe notifyAppReady() bei jedem Start nach devicereadyauf. Wenn ein neues Bundle es nicht innerhalb von APP_READY_TIMEOUT Millisekunden aufruft, markiert das Plugin es als fehlgeschlagen und rollt auf das letzte funktionierende Bundle zurück.

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

Rufe es auf, nachdem deine App tatsächlich gerendert wurde, nicht ganz oben im Skript, damit ein Bundle, das beim Start abstürzt, erkannt wird.

Manueller Update-Flow

Wenn du AUTO_UPDATE=off, Sie steuern, wann geprüft, heruntergeladen und angewendet wird:

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 });
  }
});

TypeScript-Typen sind im Paket enthalten:

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

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

Ein Update veröffentlichen

Baue dein www Ordner und lade ihn hoch:

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

Füge das in deine CI nach den Tests ein. Die Live-Updates-Seite zeigt Channel-Rollouts, Statistiken und Rollback im Dashboard an.

Migration von cordova-hot-code-push

  1. Entferne das alte Plugin und seine Konfiguration. Löschen cordova-hot-code-push-plugin, die chcp Abschnitt in config.xml, und die cordova-hcp CLI und chcp.json / chcp.manifest Generierung aus deinem Build.
  2. Entfernen cordova-plugin-ionic-webview falls vorhanden, und teste, ob die App im Standard-Cordova-WebView läuft.
  3. Cordova-Plattformen aktualisieren auf Android 13+ und iOS 7+.
  4. Installieren @capgo/cordova-updater und füge hinzu notifyAppReady().
  5. Veröffentliche einen neuen Store-Build. Alte Installationen behalten das alte Plugin. Nur das neue Binary enthält den Capgo-Updater.
  6. Lade dein erstes Bundle hoch in einen Testkanal, prüfe es auf Geräten und fördere es dann in die Produktion.

Nutzer, die nicht aus dem Store aktualisieren, bleiben beim alten Mechanismus, bis sie es tun. Halte deinen alten Update-Server während der Übergangszeit online, falls er noch funktioniert, oder akzeptiere, dass diese Nutzer keine OTA-Updates erhalten, bis sie das neue Binary installieren.

Migration von CodePush für Cordova

  • Ersetze codePush.sync() Aufrufe mit notifyAppReady() und entweder automatischem Modus oder dem getLatest / download / next Flow.
  • Deployment-Keys durch Kanäle ersetzen (DEFAULT_CHANNEL).
  • Ersetze code-push release-cordova mit bunx @capgo/cli@latest bundle upload.
  • Entferne den CodePushDeploymentKey Einstellungen aus config.xml.

Eine Schritt-für-Schritt-Anleitung für App Center-Nutzer findest du App-Center-Migrationsanleitung.

Sicherheit und Store-Regeln

  • Verschlüsselung und Signierung. Setzen Sie PUBLIC_KEY zur Installationszeit und nutzt die Verschlüsselungsschlüssel von CLI, damit Geräte nur Bundles akzeptieren, die für Ihre App signiert sind.
  • Richtlinien von Apple und Google. Beide erlauben das OTA-Update von interpretiertem code wie JavaScript, solange Sie den Zweck der App nicht ändern oder Funktionen hinzufügen, die eine Prüfung erfordern. Native code, neue Plugins und Berechtigungsänderungen erfordern eine Store-Veröffentlichung.
  • Version Targeting. Wenn ein Bundle ein natives Plugin benötigt, das nur in einer neueren Binärdatei existiert, richten Sie es auf diese Native-Version aus. Die Capgo-Dokumentation zu live update-Kompatibilität erklärt, wie das funktioniert.

Fehlerbehebung

Bundle-Downloads, aber die App zeigt die alte Version an. Du nutzt immer noch cordova-plugin-ionic-webview, or a custom scheme. Remove it and use the defaults.

Die App rollt nach jedem Update zurück. notifyAppReady() wird nicht aufgerufen oder erst nach einem Fehler. Prüfen Sie die Konsole auf dem Gerät und stellen Sie sicher, dass der Aufruf bei jedem Start erfolgt.

Der iOS-Build schlägt nach dem Plattform-Upgrade fehl. Cordova iOS 7+ benötigt eine aktuelle Xcode-Version. Für App Store-Uploads ist Xcode 26 erforderlich. Sie können Signing-Assets mit dem iOS-Zertifikatsgeneratorgenerieren. Sobald Sie zu Capacitor wechseln, Capgo Build können signierte iOS-Builds in der Cloud erstellt werden, ohne einen lokalen Mac zu benötigen.

Updates funktionieren auf Android, aber nicht auf iOS. Prüfen Sie, ob das iOS-Schema in config.xml der Standard ist app Schema mit localhost Hostname.

Solltest du stattdessen zu Capacitor wechseln?

Das musst du nicht. Capgo für Cordova existiert, damit du weiter ausliefern kannst, während du entscheidest. Capacitor bietet eine gewartete Native-Schicht, Swift Package Manager auf iOS und ein größeres Plugin-Ökosystem. Wenn du bereit bist, behalte dieselbe Capgo App-ID und Kanäle und wechsle nur das Client-Plugin. Unser Migrationsguide von Cordova zu Capacitor erklärt es Schritt für Schritt.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Layer live ist, liefere den Fix über Capgo aus, statt Tage auf die App-Store-Freigabe zu warten. Nutzer bekommen das Update im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neues aus unserem Blog

Capgo gibt dir die besten Insights, um eine wirklich professionelle Mobile App zu erstellen.