Debugging
Ein Setup-Prompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Cloud-Protokolle verstehen:
Abschnitt mit dem Titel “Cloud-Protokolle verstehen:”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.
Von der Backend-Instanz gesendet
Abschnitt mit dem Titel “Von der Backend-Instanz gesendet”| code | Beschreibung |
|---|---|
| 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. |
Von dem Gerät gesendet
Abschnitt mit dem Titel „Von dem Gerät gesendet“| code | Beschreibung |
|---|---|
| ping | Interne Testaktion, die verwendet wird, um sicherzustellen, dass das Statistiksystem ordnungsgemäß funktioniert. |
| get | Die Informationen für das Herunterladen der neuen Version wurden an das Gerät gesendet. |
| delete | Ein Bundle wurde auf dem Gerät gelöscht. |
| set | Ein Bundle wurde auf dem Gerät gesetzt. |
| set_fail | Das Bundle konnte nicht gesetzt werden. |
| reset | Das Gerät wurde auf die builtin bundle. |
| download_XX | Ein neuer Bundle wurde heruntergeladen - Fortschritt angezeigt durch XX% (Zehner-Schritte). |
| download_complete | Das neue Bundle wurde heruntergeladen. |
| download_manifest_start | Das Gerät begann, das Update-Manifest herunterzuladen. |
| download_manifest_complete | Das Gerät hat das Update-Manifest heruntergeladen. |
| download_zip_start | Das Gerät begann, das Bundle-Archiv herunterzuladen. |
| download_zip_complete | Das Gerät hat das Bundle-Archiv heruntergeladen. |
| download_manifest_file_fail | Ein 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_fail | Das Manifest-File hat die Prüfung der Prüfsumme nicht bestanden. |
| download_manifest_brotli_fail | Das Manifest-File konnte nicht mit Brotli entpackt werden. |
| download_fail | The neue Bundle konnte nicht heruntergeladen werden. |
| update_fail | Das neue Bundle wurde installiert, aber fehlgeschlagen, die __CAPGO_KEEP_0__ zu aufrufen. notifyAppReady. |
| checksum_fail | Das 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_fail | Der Zip enthält Dateien mit illegalen Windows-Pfaden |
| canonical_path_fail | Der Dateipfad ist nicht kanonisch |
| directory_path_fail | Es gibt einen Fehler im Pfad der Zip-Dateien |
| unzip_fail | Die Entpackung ist fehlgeschlagen |
| low_mem_fail | Der Download ist fehlgeschlagen, weil auf dem Gerät zu wenig Speicher verfügbar ist |
| app_moved_to_background | Die Anwendung ist in den Hintergrundzustand versetzt worden |
| app_moved_to_foreground | Die Anwendung ist in den Vordergrund gezogen. |
| app_crash | Die 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_native | Der 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_anr | Android 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_memory | Das 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_usage | Der Betriebssystem hat die App wegen übermäßiger Ressourcenverwendung beendet. Die Metadaten können den Ressourcentyp oder die Plattform-Gründe enthalten, wenn verfügbar. |
| Anwendungsinitialisierungsfehler | Der 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-Warnung | iOS meldete eine Memory-Warnung. Die Metadaten können den aktiven Bundle und den Memory-Context enthalten, wenn verfügbar. |
| WebView-JavaScript-Fehler | Der 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 Ablehnung | Der WebView meldete eine ungelöste Promise-Ablehnung. Die Metadaten können die Ablehnungsgrund, die Quell-URL und die Stack-Informationen enthalten. |
| WebView-Ressourcenfehler | Eine 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_restart | Die App hat eine vorherige WebView-Sitzung erkannt, die nicht sauber beendet wurde. Dies kann bei Crash-Schleifen nach einer Aktualisierung helfen. |
| webview_render_process_gone | 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. |
| webview_content_process_terminated | iOS meldete, dass der WebView-Inhaltprozess beendet wurde. Die Metadaten können den aktiven Bundle und die Seite-URL angeben, wenn verfügbar. |
| decrypt_fail | Der 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. |
| Entfernen | Die Anwendung wurde entfernt oder Capgo Daten gelöscht. |
| blockiert_durch_server_url | Server.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. |
Bündelstatus
Abschnitt mit dem Titel „Bündelstatus“SUCCESS: Bündel installiertERROR: Bündel-Installation oder -Herunterladen fehlgeschlagenPENDING: Herunterladen abgeschlossen, Veröffentlichung steht noch ausDELETED: Bündel gelöscht, aber für Statistiken noch vorhandenDOWNLOADING: Aktuell wird ein Bundle heruntergeladen
Geräteprotokolle verstehen:
Abschnitt: Geräteprotokolle verstehen:Debug-Befehl:
Abschnitt: Debug-Befehl:Für Capgo-Cloud-Nutzer gibt es einen Debug-Befehl.
npx @capgo/cli@latest app debugMit 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
Android:
Abschnitt: "Android:"um Ihre Protokolle in Android Studio zu finden
Erklärungen zu Protokollen
Abschnitt: "Erklärungen zu Protokollen"Failed to download from=> gleichbedeutend download_failnotifyAppReady was not called, roll back current bundle== gleichbedeutend == update_fail
Das heruntergeladene Bundle auf Ihrem Gerät finden
Abschnitt mit dem Titel „Das heruntergeladene Bundle in Ihrem Gerät finden“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.

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.

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

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.

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.

Dann finden Sie das versions Verzeichnis, um alle Versionen zu sehen
iOS-Produktionscrash-Protokolle verstehen
Abschnitt mit dem Titel “iOS-Produktionscrash-Protokolle verstehen”Bleiben Sie bei Debugging
Abschnitt mit dem Titel “Bleiben Sie bei Debugging”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.