Zum Inhalt springen

Debugging

GitHub

Wenn Sie ein Cloud-Verbot code erhalten und konkrete Abhilfeschritte 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 im folgenden Listenformat aufgeführten snake_case-Aktion code 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, Prozesszustand, Speicherdurchsatz oder plattformabhängige Gründe enthalten können. Ältere Protokolle können immer noch die legacy camelCase-Aliase in Klammern aufweisen, die in der Liste aufgeführt sind.

codeBeschreibung
ungültige IP (__CAPGO_KEEP_0__)Der Benutzer befindet sich in einem Google-Datencenter und die Aktualisierung ist weniger als 4 Stunden alt. Dies wird getan, um Google-Bots-Geräte als Geräte in Ihrem Konto zu vermeiden.
__CAPGO_KEEP_1__ (__CAPGO_KEEP_1__, zuvor __CAPGO_KEEP_1__)Zeigt an, dass Sie die Grenze 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.
Die native Version folgt nicht der erwarteten semantischen Versionsnummer.Die native Version folgt nicht der erwarteten semantischen Versionsnummer.
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, metadatadisable_auto_update_under_native none.
Auto-Update ist unter Native deaktiviert. (disableAutoUpdateUnderNative)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.
disable_dev_build (disableDevBuild)Das Gerät hat ein Entwicklerversion, aber das ist in den Kanal-Einstellungen deaktiviert.
disable_emulator (disableEmulator)Das Gerät ist ein Emulator, aber das ist in den Kanal-Einstellungen deaktiviert.
cannot_get_bundle (cannotGetBundle)Es ist nicht möglich, eine gültige signierte URL für das Bundle-Download zu generieren. Dies tritt auf, wenn die Erzeugung der Bundle-URL 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 (Kann nicht über einen privaten Kanal aktualisiert werden)Das Gerät versuchte, sich selbst mit einem privaten Kanal zu verbinden, aber die Kanal-Einstellungen erlauben keine Geräte-Selbstverbindung (allow_device_self_set Falsch konfigurierte Kanal
Falsch konfigurierte Kanal (Der Kanal ist so konfiguriert, dass die automatische Aktualisierung über die Versionsnummer ()) deaktiviert ist, aber das Bundle-disable_auto_update: 'version_number'Fehler bei der Aktualisierung zu den Metadaten min_update_version Fehler bei der Aktualisierung zu den Metadaten
Die Aktualisierung über die Versionsnummer ( () ist für den Kanal deaktiviert, aber das Bundle-)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, wie z.B. das Blockieren von 1.x.x Aktualisierungen zu 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. 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 zum Kanal zugewiesene Bundle hat keine herunterladbaren Inhalte. Das bedeutet, das Bundle hat keine external_url, keine r2_path, es ist keine interne Version und es stehen keine Manifest-Einträge für eine Herunterladung zur Verfügung.
keinen Kanal (NoChannelOrOverride)Für diese App ist keine Standardkanal konfiguriert und das Gerät hat keinen spezifischen Kanal-Übertrag übernommen. Zumindest einer muss vorhanden sein, damit Updates funktionieren.
rate_limited (rateLimited)Das Gerät wurde aufgrund von übermäßigen Anfragen rate limitiert.
key_id_mismatch (keyMismatch)Die öffentliche Verschlüsselungskey des Geräts stimmt nicht mit der öffentlichen Schlüssel überein, die zum Verschlüsseln des Bundles verwendet wurde. Die Metadaten enthalten device_key_id, bundle_key_id, und version um die Mismatch zu identifizieren.
codeBeschreibung
pingInterne Testaktion, die verwendet wird, um sicherzustellen, dass das Statistiksystem ordnungsgemäß 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 gesetzt werden.
resetDas Gerät wurde auf die builtin bundle.
download_XXEin neuer Bundle wurde heruntergeladen - Fortschritt angezeigt durch XX% (Zehner-Schritte).
download_completeDas neue Bundle wurde heruntergeladen.
download_manifest_startDas Gerät begann, das Update-Manifest herunterzuladen.
download_manifest_completeDas Gerät hat das Update-Manifest heruntergeladen.
download_zip_startDas Gerät begann, das Bundle-Archiv herunterzuladen.
download_zip_completeDas Gerät hat das Bundle-Archiv heruntergeladen.
download_manifest_file_failEin Eintrag im Manifest 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üfung der Prüfsumme 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 fehlgeschlagen, die __CAPGO_KEEP_0__ zu aufrufen. notifyAppReady.
checksum_failDas neue Bundle konnte die Prüfung des Checksums 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-Checksummen, während ältere Plugins CRC32 verwendeten. Wenn Sie einen Checksumm-Fehler sehen, überprüfen Sie, ob die Checksumm CRC32 (eine kürzere Hash) anstatt SHA256 ist. 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-Checksummen 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, wenn der Gerätschlüssel nicht mit dem Schlüssel übereinstimmt, der zum Verschlüsseln des Bundles verwendet wurde, die Verschlüsselung stillschweigend fehlschlagen und einen Checksumm-Fehler verursachen. Wenn Sie Verschlüsselung verwenden und sehen, dass checksum_failüberprüfen Sie, ob der öffentliche Schlüssel in Ihrer App’s capacitor.config.json mit dem privaten Schlüssel übereinstimmt, der zum Hochladen des Bundles verwendet wurde. Durch Upgrade auf Plugin-Version 8.3.0+ (oder 5/6/7.38.0+) erhalten Sie eine ordentliche keyMismatch fehlschlägt, 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 Hintergrundzustand versetzt worden
app_moved_to_foregroundDie Anwendung ist in den Vordergrund gezogen.
app_crashDie App meldete einen Crash, der von JavaScript oder Capacitor detektiert wurde. Die Metadaten können den Fehler, die Stack-Informationen, 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-Informationen 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 der Ausführungsstränge enthalten, wenn verfügbar.
app_killed_low_memoryDas App-Prozess wurde nach Druck auf geringe verfügbare Speicher beendet. 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äßiger Ressourcenverwendung beendet. Die Metadaten können den Ressourcentyp oder die Plattform-Gründe enthalten, wenn verfügbar.
AnwendungsinitialisierungsfehlerDer Updater oder die Anwendungsstartablauf schlug fehl, bevor die normale Laufzeit bereit war. 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 den Memory-Context enthalten, wenn verfügbar.
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-Informationen enthalten.
WebView-ungelöste AblehnungDer WebView meldete eine ungelöste Promise-Ablehnung. Die Metadaten können die Ablehnungsgrund, die Quell-URL und die Stack-Informationen enthalten.
WebView-RessourcenfehlerEine WebView-Ressource konnte nicht geladen werden. Die Metadaten können die URL, den Status code, den Ressourcentyp und die Fehlermeldung enthalten.
WebView-SicherheitsrichtlinienverstoßDer WebView meldete einen Verstoß gegen die Inhaltsicherheitsrichtlinien. Die Metadaten können die blockierte URI, die Richtlinie und die Dokument-URL enthalten.
webview_unclean_restartDie App hat eine vorherige WebView-Sitzung erkannt, die nicht sauber beendet wurde. Dies kann bei Crash-Schleifen nach einer Aktualisierung helfen.
webview_render_process_goneAndroid meldete, dass der WebView-Renderer-Prozess beendet wurde. Die Metadaten können angeben, ob der Renderer abgestürzt ist und die Renderer-Priorität.
webview_content_process_terminatediOS meldete, dass der WebView-Inhaltprozess beendet wurde. Die Metadaten können den aktiven Bundle und die Seite-URL angeben, wenn verfügbar.
decrypt_failDer Versuch, das heruntergeladene Bundle zu entschlüsseln, ist fehlgeschlagen.
get_channel (getChannel)Die aktuelle Kanal für das Gerät wurde abgefragt.
set_channel (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 und lokale Dateien ignorieren, während unser Updater mit lokalen Dateien funktioniert, Server.url wird von Capacitor Herstellern als schlechte Praxis in der Produktion angesehen und kann zu vielen Problemen und nicht funktionierenden Plugins führen.
  • SUCCESS: Bündel installiert
  • ERROR: Bündel-Installation oder -Herunterladen fehlgeschlagen
  • PENDING: Herunterladen abgeschlossen, Veröffentlichung steht noch aus
  • DELETED: Bündel gelöscht, aber für Statistiken noch vorhanden
  • DOWNLOADING: Aktuell wird ein Bundle heruntergeladen

Geräteprotokolle verstehen:

Abschnitt: Geräteprotokolle verstehen:

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

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

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

um Ihre Protokolle in Xcode zu finden

um Ihre Protokolle in Android Studio zu finden

Erklärungen zu Protokollen

Abschnitt: "Erklärungen zu Protokollen"
  • Failed to download from => gleichbedeutend download_fail
  • notifyAppReady was not called, roll back current bundle == gleichbedeutend == update_fail

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

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

Um dies zu erreichen:

  • Verbinden Sie Ihr Gerät mit Ihrem Mac und wählen Sie in der Xcode-Menüleiste „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ätepanel 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 Kontextmenü "Show Package Contents"

Klicken Sie mit der rechten Maustaste 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 erforderlich 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/APP_NAME/ wobei APP_NAME ist Ihr App-Name.

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

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

Wenn Sie " Debugging um native Plugin-Arbeit zu planen, verbinden Sie es mit Mit @capgo/capacitor-updater für die native Fähigkeit in Mit @capgo/capacitor-updater, Capgo Plugin-Verzeichnis 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.