Zum Inhalt springen

Debugging

GitHub

Falls code von der Cloud abgelehnt wird und du detaillierte Anleitungen zur Fehlerbehebung benötigst, schau hier Häufige Update-Probleme.

Capgo Logs können Metadaten zum Event enthalten. Filtere im Dashboard nach der snake_case Action code und klicke auf die Metadata-Zelle, um das vollständige JSON-Payload zu kopieren. Metadaten sind besonders hilfreich für Crash- und WebView-Events, da sie Fehlermeldungen, die Source-URL, Zeile und Spalte, den Prozessstatus, Memory Pressure oder plattformspezifische Gründe enthalten können. Ältere Logs können noch Legacy camelCase-Aliase in Klammern anzeigen.

Jeder Abschnittstitel entspricht der Action code, die in der Console-Logs-Tabelle angezeigt wird, sodass du direkt dorthin verlinken kannst.

Backend-Ablehnungen im Zusammenhang mit Abrechnung, Throttling oder Nicht-Fehler-Zuständen.

What it means

Capgo hat Traffic erkannt, der von Google oder Cloud-Infrastrukturen zu stammen scheint. Updates, die jünger als vier Stunden sind, werden ignoriert, damit Bot-Traffic nicht als kostenpflichtige Geräte gezählt wird.

Was zu tun ist

Ignoriere dies bei echten Nutzern. Versuche es über normale Netzwerke und echte Geräte erneut, oder warte und prüfe es später.

What it means

Deine App ist so konfiguriert, dass Anfragen aus bekannten IP-Bereichen von Google- und Apple-Rechenzentren blockiert werden. Dieser Schutz gilt für Update-Checks, Stats und channel-self-Anfragen. Daher können Cloud-basierte Probes und Provider-Runner diese Antwort erhalten, selbst wenn die App-Konfiguration ansonsten gültig ist.

Was zu tun ist

Versuche es über ein physisches Gerät in einem normalen Nutzernetzwerk. Falls der vom Provider ausgehende Traffic beabsichtigt ist, deaktiviere diesen vorübergehend Provider-Infrastruktur-Anfragen blockieren in der App- Informationen im Tab und aktiviere ihn nach dem Test wieder. Neue Apps haben diese Einstellung standardmäßig aktiviert; bestehende Apps behalten ihre vorherige Einstellung bei, bis sie geändert wird.

What it means

Deine Organisation hat das Limit für den Plan oder die Anzahl der Geräte erreicht. Das Gerät erhält keine Updates mehr, bis du dein Abo upgradest oder der nächste Abrechnungszyklus beginnt.

Was zu tun ist

Upgrade deinen Plan im Dashboard oder warte bis zum nächsten Abrechnungszyklus.

What it means

Das Gerät hat bereits das neueste verfügbare Bundle für seinen Channel. Dies ist ein normaler Zustand und kein Fehler.

What it means

Das Gerät hat in kurzer Zeit zu viele Update- oder Channel-Anfragen gesendet.

Was zu tun ist

Rufe Update-APIs nicht innerhalb von Render-Loops auf. Rufe sie setChannel / getChannel nur durch User-Aktionen auf und setze defaultChannel in capacitor.config.

Backend-Ablehnungen aufgrund ungültiger Metadaten zur nativen Version.

What it means

Die native App-Version in der Config fehlt oder ist kein gültiges SemVer (x.y.z).

Was zu tun ist

Setzen Sie plugins.CapacitorUpdater.version Um ein gültiges SemVer zu erhalten, prüfe es im SemVer-Tester), baue die native App neu und installiere sie erneut.

Backend-Ablehnungen, wenn die Channel-Policy eine Plattform, einen Build-Typ oder eine Geräteklasse blockiert.

What it means

Das Gerät nutzt iOS, aber iOS-Updates sind für diesen Channel deaktiviert.

Was zu tun ist

Aktiviere iOS im Channel, falls dies ein Versehen war, oder leite iOS-Builds in einen eigenen Channel um, wenn die Blockierung beabsichtigt ist.

What it means

Das Gerät nutzt Android, aber Android-Updates sind für diesen Channel deaktiviert.

Was zu tun ist

Aktiviere Android im Channel, falls dies versehentlich geschah, oder leite Android-Builds in einen eigenen Channel um, wenn das Blockieren beabsichtigt ist.

What it means

Das Gerät nutzt Electron, aber Electron-Updates sind für diesen Channel deaktiviert.

Was zu tun ist

Aktiviere Electron im Channel, falls dies versehentlich geschah, oder leite Electron-Builds in einen eigenen Channel um, wenn das Blockieren beabsichtigt ist.

What it means

Das Gerät ist ein Development Build, aber Dev-Builds sind für diesen Channel blockiert.

Was zu tun ist

Erlaube Dev-Builds in einem Test-Channel, oder nutze diesen Channel nur für Releases und verschiebe Dev-Geräte woandershin.

What it means

Ein Production-Build namens /updates, aber Production-Updates sind für diesen Channel gesperrt.

Was zu tun ist

Erlaube Production-Updates in diesem Channel, falls dies ein Versehen war, oder leite Production-Builds an den richtigen Channel weiter.

What it means

Ein echtes Smartphone oder Tablet wurde blockiert, da dieser Channel echte Geräte sperrt.

Was zu tun ist

Aktiviere Updates auf echten Geräten, falls dies ein Versehen war, oder behalte die Einschränkung bei und leite echte Geräte auf einen anderen Channel um.

What it means

Das Gerät ist ein Emulator, aber Emulator-Updates sind für diesen Channel deaktiviert.

Was zu tun ist

Aktiviere Emulator-Updates in einem Test-Channel oder blockiere Emulatoren in diesem Channel und nutze einen anderen für die Emulator-Validierung.

Backend-Ablehnungen, wenn SemVer- oder Metadaten-Regeln das Ziel-Bundle blockieren.

What it means

Auto-Update ist durch die Channel-Kompatibilitätsrichtlinie deaktiviert. Metadaten enthalten auto_update mit einer passenden Regel wie major, minor, patch, metadata, oder none.

Was zu tun ist

Ändere die Auto-Update-Policy des Channels, um deinen Rollout zu ermöglichen.

What it means

Der Channel enthält ein Bundle, das älter als die native Baseline des Geräts ist, wodurch Updates unterhalb der nativen Version blockiert werden.

Was zu tun ist

Veröffentliche ein Bundle auf oder über der nativen Baseline oder deaktiviere den „Under-Native“-Schutz im Channel.

What it means

Der Channel erfordert min_update_version, aber die native Version des Geräts liegt unter diesem Schwellenwert.

Was zu tun ist

Setzen Sie min_update_version auf dem Ziel-Bundle oder Release einer neueren Native Build Version.

What it means

Der Channel blockiert Major-Version-Sprünge, zum Beispiel 1.x.x zu 2.x.x.

Was zu tun ist

Stimme die Channel-Strategie mit deinem Major-Rollout-Plan ab oder erlaube Major-Sprünge für diesen Track. Siehe Häufige Update-Probleme.

What it means

Der Channel blockiert Minor-Version-Sprünge im Vergleich zur nativen Baseline des Geräts (version_build), zum Beispiel 1.2.3 zu 1.3.0.

Was zu tun ist

Stimme die Channel-Strategie auf deinen Rollout-Plan ab oder erlaube Patch-Sprünge für diesen Track.

What it means

Der Channel blockiert Änderungen auf Patch-Ebene bei gleichem MAJOR.MINOR.PATCH Präfix; nur Änderungen am Suffix sind erlaubt.

Was zu tun ist

Stimme den Release-Zyklus auf die Channel-Policy ab oder erlaube Patch-Sprünge für diesen Track.

Backend-Ablehnungen aufgrund fehlender oder inkompatibler Channel-Konfiguration.

What it means

Das Gerät hat versucht, sich selbst einem privaten Channel zuzuweisen, der keine automatische Zuweisung erlaubt (allow_device_self_set ist false) und der Channel ist nicht öffentlich.

Was zu tun ist

Aktivieren allow_device_self_set im Channel oder wechselt das Gerät zu einem öffentlichen oder erlaubten Channel.

What it means

Der Channel nutzt disable_auto_update: "version_number" aber das Bundle min_update_version ist null, daher kann Capgo nicht entscheiden, welche Geräte ein Update erhalten sollen.

Was zu tun ist

Ergänze die fehlende Konfiguration für diese Regel oder wechsle zu einem einfacheren Auto-Update-Modus.

What it means

Es ist kein Standard-Channel konfiguriert und das Gerät hat keinen Channel-Override.

Was zu tun ist

Lege einen Standard-Channel im Dashboard fest oder konfiguriere ihn defaultChannel in the build.

Bundle-Auslieferung und Verschlüsselung

Abschnitt mit dem Titel „Bundle delivery and encryption“

Backend-Ablehnungen, wenn Capgo das Bundle nicht ausliefern oder entschlüsseln kann.

What it means

Capgo konnte keine gültige signierte Download-URL generieren und es war kein Manifest-Fallback verfügbar.

Was zu tun ist

Bundle erneut hochladen, Manifests neu generieren und R2- oder öffentliche Bundle-Einstellungen prüfen.

What it means

Das dem Channel zugewiesene Bundle enthält keine herunterladbaren Inhalte: kein external_url, kein r2_path, keine integrierte Version und keine Manifest-Einträge.

Was zu tun ist

Version neu bauen und hochladen, dann sicherstellen, dass das Bundle echte Dateiinhalte hat.

What it means

The device encryption public key does not match the key used to encrypt the bundle. Metadata can include device_key_id, bundle_key_id, und version.

Was zu tun ist

Vergleiche die Key-IDs von Gerät und Bundle in der Konsole. Veröffentliche mit demselben Key und passenden CLI/Plugin-Versionen.

Backend-Ablehnungen aufgrund der App-Konfiguration oder nicht unterstützter Updater-Versionen.

What it means

Die App hat eine benutzerdefinierte Device-ID gesendet, aber diese App akzeptiert keine benutzerdefinierten IDs, daher wird die ID ignoriert.

Was zu tun ist

Sende keine benutzerdefinierten IDs mehr oder aktiviere sie nur, wenn dein Workflow dies erfordert.

What it means

server.url ist in der Capacitor-Konfiguration gesetzt, sodass die WebView eine Remote-URL statt lokaler Bundle-Dateien lädt. Capgo Live Updates benötigen lokale Dateien und server.url wird in der Produktion nicht empfohlen.

Was zu tun ist

Entfernen oder leeren server.url für Production-Builds und um Update-Payloads lokal zu halten. Dieser code kann entweder als Ablehnung durch das Backend oder als Status auf dem Gerät erscheinen.

What it means

Das Updater-Plugin ist v4, was vom Backend nicht mehr akzeptiert wird.

Was zu tun ist

Upgrade Plugin und CLI auf v5+ (v8 empfohlen) mit Capacitor v5+, rebuild und republish der Bundle-Metadaten.

Geräteseitige Events für den normalen Update-Flow, die Aktivierung und den Rollback.

What it means

Interner Test-Aktion, um die Stats-Pipeline zu verifizieren.

What it means

Capgo hat Download-Infos für eine neue Version an das Gerät gesendet.

What it means

Ein Bundle wurde auf dem Gerät aktiviert.

What it means

Ein Bundle konnte auf dem Gerät nicht aktiviert werden.

Was zu tun ist

Native Logs prüfen mit npx @capgo/cli@latest app debug und die Bundle-Integrität, Pfade sowie den notifyAppReady flow.

What it means

Das Gerät wurde auf das integrierte Bundle zurückgesetzt.

What it means

Ein Bundle wurde auf dem Gerät gelöscht.

Download- und Installationsfehler

Abschnitt „Download- und Installationsfehler“

Geräteinterne Events für den Download-Fortschritt, die Archivvalidierung und Installationsfehler.

What it means

Die Download-Sequenz startete bei 0 % Fortschritt.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 10 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 20 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 30 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 40 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 50 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 60 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 70 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 80 %.

What it means

Ein neues Bundle wurde heruntergeladen – Fortschritt bei 90 %.

What it means

Der Bundle-Download war erfolgreich.

What it means

Das Gerät hat mit dem Download des Update-Manifests begonnen.

What it means

Das Gerät hat den Download des Update-Manifests abgeschlossen.

What it means

Das Gerät hat mit dem Download des Bundle-Archivs begonnen.

What it means

Das Gerät hat den Download des Bundle-Archivs abgeschlossen.

What it means

Ein Manifest-Eintrag konnte nicht heruntergeladen werden. version_name verwendet version:fileName um das Asset zu identifizieren.

Was zu tun ist

Behebe das fehlende oder blockierte Asset, generiere das Manifest neu und lade das Bundle erneut hoch.

What it means

Die Prüfsummenvalidierung der Manifest-Datei ist fehlgeschlagen.

Was zu tun ist

Lade das Bundle mit einer aktuellen CLI Version erneut hoch und prüfe die Manifest-Checksummen.

What it means

Die Brotli-Dekompression einer Manifest-Datei ist fehlgeschlagen.

Was zu tun ist

Prüfe die Komprimierungseinstellungen und lade die betroffenen Assets erneut hoch.

What it means

Das Bundle konnte nicht heruntergeladen werden.

Was zu tun ist

Prüfe die Netzwerkverbindung, das Ablaufdatum der signierten URL, die CDN-Erreichbarkeit und den Gerätespeicher.

What it means

Das Bundle wurde installiert, aber die App hat es nie aufgerufen notifyAppReady, daher hat Capgo ein Rollback durchgeführt.

Was zu tun ist

Rufe notifyAppReady() nachdem deine App das Bootstrapping abgeschlossen hat. Native-Log-Text notifyAppReady was not called, roll back current bundle entspricht diesem code.

What it means

Die Checksummenprüfung des heruntergeladenen Bundles ist fehlgeschlagen. Häufige Ursachen: ein CRC32-vs.-SHA256-Mismatch durch einen alten CLI-Upload oder ein Encryption-Key-Mismatch bei älteren Plugins, die einen Decryption-Fehler als Checksum-Fehler melden.

Was zu tun ist

Erneuter Upload mit einem aktuellen CLI/Plugin (SHA256). Bei Verschlüsselung prüfen, ob der Public Key der App mit dem Upload-Key übereinstimmt, oder auf Plugin 8.3.0+ upgraden für explizite keyMismatch errors.

What it means

The downloaded bundle failed to decrypt.

Was zu tun ist

Prüfe die Verschlüsselungsschlüssel und lade das Bundle mit dem passenden Schlüsselpaar erneut hoch.

What it means

Das ZIP enthält ungültige Windows-Pfade.

Was zu tun ist

Erstelle das Bundle mit Unix-Pfaden neu oder bereinige die Archivpfade vor dem Upload.

What it means

Die Dateipfade innerhalb der Zip-Datei sind nicht kanonisch.

Was zu tun ist

Korrigiere die Pfadgenerierung des Archivs vor dem Upload.

What it means

Die Zip-Datei enthält ungültige Verzeichnispfade.

Was zu tun ist

Korrigiere die Archivstruktur vor dem Upload.

What it means

Das Gerät konnte das heruntergeladene Bundle nicht entpacken.

Was zu tun ist

Prüfe die Archiv-Integrität und die unterstützte Komprimierung.

What it means

Der Download schlug fehl, da der Arbeitsspeicher des Geräts voll war.

Was zu tun ist

Verringere die Bundle-Größe oder versuche es auf einem Gerät mit mehr freiem Speicher.

Diagnose für Abstürze, Speicher und WebView auf dem Gerät. Prüfe immer das Metadata-JSON im Dashboard.

What it means

Die App wurde in den Hintergrund verschoben.

What it means

Die App ist in den Vordergrund gewechselt.

What it means

Crash in der JavaScript- oder Capacitor-Schicht. Metadaten können Message, Stack, Source und den aktiven Bundle-Kontext enthalten.

Was zu tun ist

Metadaten und native Logs prüfen. Kombiniere JS- und native Error-Reporting-Tools (z. B. Sentry), um den fehlerhaften code-Pfad zu finden.

What it means

Native Plattform-Crash. Metadaten können Plattform, Grund, Stack und Prozessdetails enthalten.

Was zu tun ist

Nutze Xcode- oder Logcat-Crashlogs und korreliere sie mit dem aktiven Bundle aus den Metadaten.

What it means

Android Application Not Responding Event.

Was zu tun ist

Untersuche ANR-Traces in Logcat und reduziere blockierende Aufgaben im Main-Thread nach Updates.

What it means

Das OS hat die App aufgrund von Speichermangel beendet.

Was zu tun ist

Reduziere den Speicherverbrauch nach der Update-Aktivierung und prüfe die Metadaten auf verfügbare Speicher-Signale.

What it means

The OS killed the app for excessive resource use.

Was zu tun ist

Prüfe die Metadaten auf den Ressourcentyp oder den Grund des Betriebssystems.

What it means

Updater oder Startvorgang fehlgeschlagen, bevor die normale Laufzeit bereit war.

Was zu tun ist

Prüfe die Metadaten auf den fehlgeschlagenen Schritt und die Fehlermeldung.

What it means

iOS-Speicherwarnung.

Was zu tun ist

Analysiere den Speicher-Kontext in den Metadaten und reduziere die Spitzenlast nach Updates.

What it means

Nicht abgefangener JavaScript-Fehler im WebView. Metadaten können Message, Source URL, Zeile, Spalte und Stack enthalten.

Was zu tun ist

Implementiere Error Reporting in der JS- und Native-Layer, um die exakte Fehlerzeile in der Produktion zu erfassen.

What it means

Nicht abgefangene Promise-Rejection im WebView.

Was zu tun ist

Async-Fehler mit JS- und Native-Error-Reporting erfassen.

What it means

Ein WebView-Resource konnte nicht geladen werden.

Was zu tun ist

Nutze die Metadata-URL und Status-Details, um defekte Assets oder Netzwerkregeln zu beheben.

What it means

Eine Content Security Policy hat eine Resource blockiert.

Was zu tun ist

CSP über die Metadata-Directive und Details zu blockierten URIs anpassen.

What it means

Die vorherige WebView-Session wurde nicht sauber beendet; dies kann auf Crash-Loops nach einem Update hindeuten.

Was zu tun ist

Korrelieren Sie dies mit Crash- und WebView-Fehlerereignissen vor und nach dem Neustart.

What it means

Der Android WebView Renderer-Prozess wurde beendet.

Was zu tun ist

Prüfen Sie Renderer-Crash-Signale in den Metadaten und nativen Logs.

webview_content_process_terminated

Abschnitt: „webview_content_process_terminated“

What it means

iOS WebView Content-Prozess beendet.

Was zu tun ist

Aktives Bundle und Seiten-URL aus den Metadaten prüfen.

Gerätebasierte Kontext-Events, die helfen, das Update-Verhalten mit OS-, Native-Version- oder Channel-Änderungen zu korrelieren.

What it means

Device OS version changed between checks.

What it means

Die native App-Store-Version hat sich geändert; hilft bei der Unterscheidung zwischen nativen und Web-Bundle-Änderungen.

What it means

Das Gerät hat seinen aktuellen Channel abgefragt.

What it means

Ein Channel wurde erfolgreich für das Gerät gesetzt.

What it means

Die App wurde deinstalliert oder Capgo Daten wurden gelöscht.

  • SUCCESS: Bundle-Installation abgeschlossen
  • ERROR: Installation oder Download fehlgeschlagen
  • PENDING: Download abgeschlossen, Release ausstehend
  • DELETED: Bundle gelöscht, wird in Stats noch angezeigt
  • DOWNLOADING: Lädt gerade ein Bundle herunter

Es gibt einen Debug-Befehl für Capgo Cloud-Nutzer.

Terminalfenster
npx @capgo/cli@latest app debug

Damit kannst du alle Ereignisse in der App prüfen und Lösungen finden, falls Updates nicht wie erwartet ausgeführt werden.

um deine Logs in Xcode zu finden

um deine Logs in Android Studio zu finden

  • Failed to download from entspricht download_fail
  • notifyAppReady was not called, roll back current bundle entspricht update_fail

Um das Debugging auf iOS durchzuführen, müssen Sie die App auf Ihren Computer übertragen. So gehen Sie dabei vor:

Xcode bietet eine integrierte Funktion, um das Dateisystem von über Entwickler-Tools installierten Apps auf einem iOS-Gerät zu inspizieren. Xcode Window-Menü mit der Option Devices and Simulators

So gehst du vor:

  • Verbinde dein Gerät mit dem Mac und wähle Window > Devices in der Xcode-Menüleiste.
  • Wähle dein Gerät im linken Bereich unter der Sektion Devices aus.
  • Es wird eine Liste der auf diesem Gerät installierten Entwickler-Apps angezeigt.
  • Wähle die App aus, die du inspizieren möchtest, und klicke dann auf das Drei-Punkte-Icon unten am Bildschirm.
  • Hier kannst du das aktuelle Dateisystem einsehen, indem du einen Snapshot herunterlädst.

Xcode Devices Panel mit der Option zum Herunterladen des App-Containers

Auswahl von Download Container… lädt einen Snapshot des Dateisystems als .xcappdata-Datei herunter und exportiert diesen, damit du ihn durchsuchen kannst.

Heruntergeladene .xcappdata-Datei mit dem Kontextmenü „Package Contents zeigen“

Rechtsklick auf diese Datei und „Package Contents zeigen“ auswählen, um den Ordner zu öffnen.

Öffne den App Data Ordner; du solltest nun Ordner wie Documents, Library, tmp usw. sehen.

Ordnerstruktur des iOS App-Containers mit den Ordnern Documents und Library

Danach findest du eine Version in zwei Ordnern:

library/NoCloud/ionic_built_snapshots ist nach einem App-Reboot erforderlich

und documents/versions für Hot Reload

Um das Debugging auf Android durchzuführen, müssen Sie über Android Studio auf das Gerät zugreifen:

  • Klicken Sie auf View > Tool Windows > Device File Explorer oder nutzen Sie die Schaltfläche Device File Explorer in der Tool-Window-Leiste.
  • Wählen Sie ein Gerät aus dem Dropdown-Menü aus.
  • Öffnen Sie den Pfad data/data/APP_NAME/ wo APP_NAME ist Ihre App-ID.

Android Studio Device File Explorer zeigt das App-Datenverzeichnis

Suchen Sie dann den versions Ordner, um alle Versionen zu sehen

Wenn du es nutzt Debugging Um die Arbeit an nativen Plugins zu planen, verbinde sie mit Verwendung von @capgo/capacitor-updater für die native Funktion in der Verwendung von @capgo/capacitor-updater, Capgo Plugin-Verzeichnis für den Produkt-Workflow im Capgo Plugin-Verzeichnis, Capacitor Plugins von Capgo für das Implementierungsdetail in Capacitor Plugins von Capgo, Plugins hinzufügen oder aktualisieren für das Implementierungsdetail beim Hinzufügen oder Aktualisieren von Plugins, und Ionic Enterprise Plugin-Alternativen für den Produkt-Workflow bei den Ionic Enterprise Plugin-Alternativen.