Debugging
Eine Einrichtungsvorlage mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
Verständnis von Cloud-Protokollen:
Sektion mit dem Titel “Verständnis von Cloud-Protokollen:”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.
Von der Backend-Instanz gesendet
Sektion mit dem Titel “Von der Backend-Instanz gesendet”| code | Beschreibung |
|---|---|
| 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__| code | Beschreibung |
|---|---|
| ping | Interne Testaktion, die verwendet wird, um sicherzustellen, dass das Statistiksystem korrekt 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 auf dem Gerät 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 | Der neue Bundle wurde heruntergeladen. |
| download_manifest_start | Das Gerät begann mit dem Herunterladen der Update-Manifest. |
| download_manifest_complete | Das Gerät hat das Update-Manifest heruntergeladen. |
| download_zip_start | Der Gerät begann, das Bundle-Archiv herunterzuladen. |
| download_zip_complete | Das Gerät hat das Bundle-Archiv heruntergeladen. |
| download_manifest_file_fail | Ein 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_fail | Das Manifest-File hat die Prüfsummenüberprüfung 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 die Anrufung ist fehlgeschlagen. notifyAppReady. |
| checksum_fail | Das 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_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 Hintergrund versetzt worden |
| app_moved_to_foreground | Die Anwendung ist in den Vordergrund geschoben worden. |
| app_crash | Die 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_native | Der 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_anr | Android 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_memory | Das 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_usage | Der 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 fehlgeschlagen | Der Updater oder die Anwendungsstartsequenz ist vor der normalen Laufzeit fehlgeschlagen. 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 die Memory-Kontext bei Verfügbarkeit enthalten. |
| 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-Information 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-Information enthalten. |
| WebView-Ressourcenfehler | Eine 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. |
| 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 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. |
Bündelstatus
Abschnitt mit dem Titel „Bündelstatus“SUCCESSBündel installiertERRORBündelinstallation fehlgeschlagenPENDINGHerunterladen abgeschlossen, noch nicht freigegebenDELETEDBündel gelöscht, aber für Statistiken angezeigtDOWNLOADING: 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.
npx @capgo/cli@latest app debugMit diesem können Sie alle Ereignisse im App abrufen und eine Lösung finden, wenn Updates nicht erfolgen.
iOS
Sektion: iOSum Ihre Protokolle in Xcode zu finden
Android:
Abschnitt: "Android:"Ihre Protokolle in Android Studio finden
Protokolle: Erklärungen
Abschnitt: "Protokolle: Erklärungen"Failed to download from=> gleichbedeutend download_fail => gleichbedeutendnotifyAppReady was not called, roll back current bundleupdate_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.

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.

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

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.

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.

Dann finden Sie das versions Ordner, 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 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.