Zum Inhalt springen

Debugging

GitHub

Wenn Sie ein Cloud-Verweigerungszeichen code erhalten und konkrete Schritte zur Behebung benötigen, sehen Sie Häufige Aktualisierungsprobleme.

Capgo-Protokolle können Metadaten für das Ereignis enthalten. Im Dashboard verwenden Sie den Aktionenfilter, um nach dem unter code aufgeführten snake_case-Aktion zu filtern, und klicken Sie auf die Metadaten-Zelle, um die vollständige JSON-Payload zu kopieren. Metadaten sind insbesondere bei Crash- und WebView-Ereignissen nützlich, da sie Kontext wie Fehlermeldung, Quell-URL, Zeilen- und Spaltennummer, Prozessstatus, Speicherdurchsatz oder plattformabhängige Gründe enthalten können. Ältere Protokolle können die legacy camelCase-Aliase in Klammern weiterhin anzeigen.

codeBeschreibung
ungültige IP (__CAPGO_KEEP_0__)Der Benutzer befindet sich in einem Google-Datenzentrum und die Aktualisierung ist weniger als 4 Stunden alt. Dies wird durchgeführt, um die Geräte von Google-Bots als Geräte in Ihrem Konto zu vermeiden.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__, zuvor __CAPGO_KEEP_1__)Zeigt an, dass Sie die Grenzen Ihres Plans erreicht haben und das Gerät keine Updates erhalten wird, bis Sie aufsteigen oder bis zum nächsten Monat.
__CAPGO_KEEP_2__ (__CAPGO_KEEP_2__)Das Gerät hat die neueste verfügbare Version.
__CAPGO_KEEP_3__Die native Version folgt nicht der erwarteten semantischen Versionsformat.
iOS-Plattform deaktiviert (disablePlatformIos)Das Gerät ist auf der iOS-Plattform, aber diese ist in den Kanal-Einstellungen deaktiviert.
Android-Plattform deaktiviert (disablePlatformAndroid)Das Gerät ist auf der Android-Plattform, aber diese ist in den Kanal-Einstellungen deaktiviert.
Auto-Update ist durch Kompatibilitätsrichtlinie deaktiviert. Metadata enthält (mit einer Übereinstimmungsregel wie), oder auto_update Auto-Update ist durch Kompatibilitätsrichtlinie deaktiviert. Metadata enthält __CAPGO_KEEP_0__ major, minor, patch, metadataAuto-Update unter Native deaktiviert none.
disableAutoUpdate (__CAPGO_KEEP_0__)Das Gerät hat die Version (1.2.3), und der Kanal hat ein Update (1.2.2) unter der Geräteversion, aber das ist in den Kanal-Einstellungen deaktiviert.
__CAPGO_KEEP_0__ (Das Gerät hat eine Entwicklerversion, aber das ist in den Kanal-Einstellungen deaktiviert.)__CAPGO_KEEP_0__
Das Gerät ist ein Emulator, aber das ist in den Kanal-Einstellungen deaktiviert. (__CAPGO_KEEP_0__)Das Gerät kann keine Bundle erhalten.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_2__)Fehler beim Generieren einer gültigen signierten URL für die Bundle-Download. Dies tritt auf, wenn die Bundle-URL-Generierung fehlschlägt oder eine ungültige URL zurückgibt und kein Manifest als Ausweichmöglichkeit verfügbar ist.
Kann nicht über einen privaten Kanal aktualisiert werden (cannotUpdateViaPrivateChannel)Der Gerät versuchte, sich mit einem privaten Kanal selbst zu verbinden, aber die Kanal-Einstellungen erlauben keine Geräte-Selbstverbindung (allow_device_self_set ist falsch) und der Kanal ist nicht öffentlich.
fehlerhaft konfigurierte Kanal (channelMisconfigured)Der Kanal ist so konfiguriert, dass die automatische Aktualisierung über die Versionsnummer (disable_auto_update: 'version_number') deaktiviert ist, aber das Feld des Bundles ist null, was es unmöglich macht, zu bestimmen, welche Geräte die Aktualisierung erhalten sollen. min_update_version aktualisierung über Metadaten deaktivieren
disableAutoUpdateMetadata (disableAutoUpdateByVersionNumber)Die automatische Aktualisierung ist durch die Versionsnummer-Metadaten deaktiviert. Der Kanal erfordert, dass die Geräteversion mindestens min_update_versionist, aber die aktuelle Geräteversion ist niedriger als dieser Schwellenwert.
disable_auto_update_to_major (disableAutoUpdateToMajor)Kanaleinstellung disable_auto_update: 'major' verhindert Aktualisierungen, die die Hauptversionsnummer erhöhen würden, wie z.B. das 1.x.x von 2.x.x.
disable_auto_update_to_minor (disableAutoUpdateToMinor)Kanaleinstellung disable_auto_update: 'minor' blockiert Zielpaket, deren Haupt- oder Minorversion von der Geräte-Standardbasis (version_build) abweicht, wie z.B. das 1.2.3 -> 1.3.0.
disable_auto_update_to_patch (disableAutoUpdateToPatch)Kanal-Einstellung disable_auto_update: 'patch' blockiert jede Haupt-, Minor- oder Patch-Nummernänderung von version_build; nur Suffix-Änderungen sind erlaubt, während MAJOR.MINOR.PATCH identisch bleibt, wie 1.0.0-beta.1 -> 1.0.0-beta.2.
missing_bundle (missingBundle)Die diesem Kanal zugewiesene Bundle hat keine herunterladbaren Inhalte. Das bedeutet, das Bundle hat keine external_url, keine r2_path, es ist keine integrierte Version und es stehen keine Manifest-Einträge für das Herunterladen zur Verfügung.
keinen Kanal (Keine Kanal oder Überschreibung)Für diese App ist keine Standardkanal konfiguriert und das Gerät hat keine spezifische Kanal-Überschreibung zugewiesen. Zumindest einer muss vorhanden sein, damit Updates funktionieren.
rate_limitiert (rateLimited)Das Gerät wurde aufgrund von übermäßigen Anfragen rate limitiert.
Sichere Schlüsselübereinstimmung (Die öffentliche Verschlüsselungsschlüssel des Geräts stimmt nicht mit dem öffentlichen Schlüssel überein, der zum Verschlüsseln des Bundles verwendet wird. Die Metadaten umfassen), und device_key_id, bundle_key_idum die Mismatch zu identifizieren. version Von dem Gerät gesendet

Abschnitt mit dem Titel „Von dem Gerät gesendet“

Metadata includes __CAPGO_KEEP_0__
codeBeschreibung
pingInterne Testaktion, die verwendet wird, um sicherzustellen, dass das Statistiksystem korrekt funktioniert.
getDie Informationen für das Herunterladen der neuen Version wurden an das Gerät gesendet.
deleteEin Bundle wurde auf dem Gerät gelöscht.
setEin Bundle wurde auf dem Gerät gesetzt.
set_failDas Bundle konnte nicht auf dem Gerät gesetzt werden.
resetDas Gerät wurde auf die builtin bundle.
download_XXEin neuer Bundle wurde heruntergeladen - Fortschritt angezeigt durch XX% (Zehner-Schritte).
download_completeDer neue Bundle wurde heruntergeladen.
download_manifest_startDas Gerät begann mit dem Herunterladen der Update-Manifest.
download_manifest_completeDas Gerät hat das Update-Manifest heruntergeladen.
download_zip_startDer Gerät begann, das Bundle-Archiv herunterzuladen.
download_zip_completeDas Gerät hat das Bundle-Archiv heruntergeladen.
download_manifest_file_failEin Manifest-Eintrag konnte nicht heruntergeladen werden; die Stats-Payload legt version_name in der Form version:fileName fest, um welches Asset es sich handelt.
download_manifest_checksum_failDas Manifest-File hat die Prüfsummenüberprüfung nicht bestanden.
download_manifest_brotli_failDas Manifest-File konnte nicht mit Brotli entpackt werden.
download_failThe neue Bundle konnte nicht heruntergeladen werden.
update_failDas neue Bundle wurde installiert, aber die Anrufung ist fehlgeschlagen. notifyAppReady.
checksum_failDas neue Bundle konnte die Prüfung des Checksumms nicht durchführen. Dies kann auf mehrere Gründe zurückzuführen sein: 1) Checksumm-Typ-Mismatch: Die neueste Version von CLI und Plugins (Version 5.10.0+, 6.25.0+ oder 7+) verwenden SHA256-Checksumms, während ältere Plugins CRC32 verwendeten. Wenn Sie einen Checksumm-Fehler sehen, überprüfen Sie, ob der Checksumm-Typ CRC32 (ein kürzerer Hash) ist, anstatt SHA256. Dies deutet darauf hin, dass das Bundle mit einer alten Version von CLI hochgeladen wurde. Überprüfen Sie Ihre Bundle-Version im Capgo-Dashboard - Bundles, die seit Version 5.10.0/6.25.0/7 erstellt wurden, sollten SHA256 verwenden. Wenn Sie CRC32-Checksumms sehen, stellen Sie sicher, dass Sie die neueste Plugin-Version lokal installiert haben (das CLI überprüft Ihre lokale Plugin-Version, um zu bestimmen, welcher Checksumm-Typ hochgeladen werden soll), dann aktualisieren Sie Ihre CLI und laden Sie das Bundle erneut hoch. 2) Verschlüsselungs-Schlüssel-Mismatch (bei Plugin-Versionen unter 8.3.0 oder 5/6/7.38.0): Bei älteren Plugin-Versionen wird die Verschlüsselung fehlschlagen, wenn der Gerätschlüssel nicht mit dem Schlüssel übereinstimmt, der zum Verschlüsseln des Bundles verwendet wurde. Wenn Sie Verschlüsselung verwenden und sehen, dass checksum_failüberprüfen Sie, ob der öffentliche Schlüssel in Ihrer App capacitor.config.json mit dem privaten Schlüssel übereinstimmt, der zum Hochladen des Bundles verwendet wurde. Durch das Upgrade auf Plugin-Version 8.3.0+ (oder 5/6/7.38.0+) erhalten Sie eine korrekte keyMismatch fehlschlagmeldung vom Server, was diese Probleme einfacher zu diagnostizieren macht.
windows_path_failDer Zip enthält Dateien mit illegalen Windows-Pfaden
canonical_path_failDer Dateipfad ist nicht kanonisch
directory_path_failEs gibt einen Fehler im Pfad der Zip-Dateien
unzip_failDie Entpackung ist fehlgeschlagen
low_mem_failDer Download ist fehlgeschlagen, weil auf dem Gerät zu wenig Speicher verfügbar ist
app_moved_to_backgroundDie Anwendung ist in den Hintergrund versetzt worden
app_moved_to_foregroundDie Anwendung ist in den Vordergrund geschoben worden.
app_crashDie App meldete einen Crash, der von JavaScript oder Capacitor detektiert wurde. Die Metadaten können den Fehler, die Stack-Trace, die Quelle und den aktiven Bundle-Kontext enthalten.
app_crash_nativeDer native Layer meldete einen Plattform-Crash. Die Metadaten können die Plattform, den Grund, die Stack-Trace und die Prozessdetails enthalten, wenn verfügbar.
app_anrAndroid meldete ein Ereignis "Anwendung nicht reagiert". Die Metadaten können den Grund, den Thread oder die Zusammenfassung des Trace-Berichts enthalten, wenn verfügbar.
app_killed_low_memoryDas App-Prozess wurde nach Druck auf geringe verfügbare Speicher gelöscht. Die Metadaten können die verfügbare Speichergröße und die Plattform-Signale enthalten, wenn verfügbar.
app_killed_excessive_resource_usageDer Betriebssystem hat die App wegen übermäßigem Ressourcenverbrauch gelöscht. Die Metadaten können den Ressourcentyp oder die Plattform-Gründe enthalten, wenn verfügbar.
Anwendungsinitialisierung fehlgeschlagenDer Updater oder die Anwendungsstartsequenz ist vor der normalen Laufzeit fehlgeschlagen. Die Metadaten können den fehlgeschlagenen Schritt und die Fehlermeldung enthalten.
Anwendungs-Memory-WarnungiOS meldete eine Memory-Warnung. Die Metadaten können den aktiven Bundle und die Memory-Kontext bei Verfügbarkeit enthalten.
WebView-Javascript-FehlerDer WebView meldete einen nicht gefangenen Javascript-Fehler. Die Metadaten können die Meldung, die Quell-URL, die Zeile, die Spalte und die Stack-Information enthalten.
WebView-ungelöste AblehnungDer WebView meldete eine ungelöste Promise-Ablehnung. Die Metadaten können die Ablehnungsgrund, die Quell-URL und die Stack-Information enthalten.
WebView-RessourcenfehlerEine WebView-Ressource ist fehlgeschlagen. Die Metadaten können die URL, den Status code, den Ressourcentyp und die Fehlermeldung enthalten.
WebView-SicherheitsrichtlinienverstoßDer WebView meldete einen Inhaltssicherheitsrichtlinienverstoß. Die Metadaten können die blockierte URI, die Richtlinie und die Dokument-URL enthalten.
__CAPGO_KEEP_0__Die App hat eine vorherige WebView-Sitzung erkannt, die nicht sauber beendet wurde. Dies kann bei Crash-Schleifen nach einer Aktualisierung helfen.
__CAPGO_KEEP_0__Android meldete, dass der WebView-Renderer-Prozess beendet wurde. Die Metadaten können angeben, ob der Renderer abgestürzt ist und die Renderer-Priorität.
__CAPGO_KEEP_0__iOS meldete, dass der WebView-Inhalt-Prozess beendet wurde. Die Metadaten können den aktiven Bundle und die Seite-URL angeben, wenn verfügbar.
Der Entschlüsselungsvorgang für das heruntergeladene Bundle ist fehlgeschlagen.Der aktuelle Kanal für das Gerät wurde abgefragt.
Der aktuelle Kanal für das Gerät wurde abgefragt. (Der aktuelle Kanal für das Gerät wurde abgefragt.)Der aktuelle Kanal für das Gerät wurde abgefragt.
Der aktuelle Kanal für das Gerät wurde abgefragt. (Kanal einrichten)Ein Kanal wurde erfolgreich für das Gerät eingerichtet.
EntfernenDie Anwendung wurde entfernt oder Capgo Daten gelöscht.
blockiert_durch_server_urlServer.url ist in Ihrer capacitor Konfiguration vorhanden, dies macht Capacitor remote URL bereitstellen und lokale Dateien ignorieren, während unser Updater mit lokalen Dateien funktioniert. Server.url wird von Capacitor Entwicklern als schlechte Praxis in der Produktion angesehen und kann zu vielen Problemen und nicht funktionierenden Plugins führen.
  • SUCCESSBündel installiert
  • ERRORBündelinstallation fehlgeschlagen
  • PENDINGHerunterladen abgeschlossen, noch nicht freigegeben
  • DELETEDBündel gelöscht, aber für Statistiken angezeigt
  • DOWNLOADING: Aktuell wird ein Bundle heruntergeladen

Verständnis von Geräteprotokollen:

Sektion: Verständnis von Geräteprotokollen:

Befehl zum Debuggen:

Sektion: Befehl zum Debuggen:

Für Capgo Cloud-Nutzer gibt es einen Debug-Befehl.

Terminal-Fenster
npx @capgo/cli@latest app debug

Mit diesem können Sie alle Ereignisse im App abrufen und eine Lösung finden, wenn Updates nicht erfolgen.

um Ihre Protokolle in Xcode zu finden

Ihre Protokolle in Android Studio finden

  • Failed to download from => gleichbedeutend download_fail => gleichbedeutend
  • notifyAppReady was not called, roll back current bundle update_fail Das heruntergeladene Bundle auf Ihrem Gerät finden

Um auf iOS zu debuggen, müssen Sie das App-Programm auf Ihrem Computer auswerten, Sie können es wie folgt tun:

Xcode verfügt über eine eingebaute Funktion zum Inspektorieren des Dateisystems von Entwickler-Installations-Apps auf einem iOS-Gerät. Xcode-Menüband mit der Option „Geräte und Simulator“

Um dies zu erreichen:

  • Verbinden Sie Ihr Gerät mit Ihrem Mac und wählen Sie in der Xcode-Menüband unter „Window“ > „Devices“.
  • Wählen Sie Ihr Gerät in der linken Spalte unter der „Geräte“-Sektion aus.
  • Dies zeigt eine Liste der von Entwicklern installierten Apps für dieses Gerät an.
  • Wählen Sie die App aus, die Sie inspizieren möchten, und wählen Sie dann das 3-Punkte-Symbol in der unteren Ecke der Bildschirmleiste aus.
  • Hier können Sie das aktuelle Dateisystem anzeigen, indem Sie eine Snapshot-Datei herunterladen.

Xcode Geräte-Panel zeigt App-Container-Download-Option

Durch Auswahl von "Download Container…" wird ein Snapshot des Dateisystems als .xcappdata-Datei heruntergeladen und exportiert, die Sie durchsuchen können.

Heruntergeladene xcappdata-Datei mit "Show Package Contents"-Rechtsklick-Menü

Rechtsklicken Sie auf diese Datei und wählen Sie "Show Package Contents" aus, um den Ordner zu öffnen.

Öffnen Sie das App-Daten-Ordner und Sie sollten jetzt einige Ordner wie Dokumente, Bibliothek, tmp usw. sehen.

iOS-App-Container-Ordnerstruktur zeigt Dokumente- und Bibliothek-Ordner

Dann finden Sie eine Version in 2 Ordner:

library/NoCloud/ionic_built_snapshots notwendig nach dem App-Neustart

und documents/versions für Hot-Reload

Um auf Android zu debuggen, müssen Sie den Gerätezugriff von Android Studio aus nutzen:

  • Klicken Sie auf Ansicht > Werkzeuge > Geräte-Datei-Explorer oder klicken Sie auf den Geräte-Datei-Explorer-Button in der Werkzeugleiste, um den Geräte-Datei-Explorer zu öffnen.
  • Wählen Sie ein Gerät aus der Dropdown-Liste.
  • Öffnen Sie den Pfad data/data/__CAPGO_KEEP_0__/ wobei __CAPGO_KEEP_0__ ist Ihr App-ID.

Android Studio Geräte-Datei-Explorer zeigt App-Datenspeicherort an

Dann finden Sie das versions Ordner, um alle Versionen zu sehen

Wenn Sie native Plugin-Arbeit planen, verbinden Sie es mit Debugging für die native Fähigkeit in Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-updater für @capgo/capacitor-updater for the native capability in Using @capgo/capacitor-updater, Capgo Plugin Directory für das Produktworkflow in Capgo Plugin-Verzeichnis Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo Hinzufügen oder Aktualisieren von Plugins für die Implementierungsdetails in Hinzufügen oder Aktualisieren von Plugins und Ionic Enterprise Plugin Alternativen für das Produktworkflow in Ionic Enterprise Plugin Alternativen.