Lompat ke konten

Debugging

GitHub

Jika Anda mendapatkan penolakan cloud code dan membutuhkan walkthrough remediasi yang lebih dalam, lihat Masalah Pembaruan Umum.

Capgo log dapat mencakup metadata untuk kejadian. Di dashboard, filter berdasarkan aksi snake_case code, dan klik sel metadata untuk menyalin payload JSON penuh. Metadata sangat berguna untuk kejadian crash dan WebView karena dapat mencakup pesan kesalahan, URL sumber, baris dan kolom, status proses, tekanan memori, atau alasan spesifik platform. Log yang lebih tua masih dapat menampilkan alias camelCase legacy yang terdaftar dalam tanda kurung.

Judul setiap bab sesuai dengan aksi code yang ditampilkan di tabel log konsol, sehingga Anda dapat menghubungkan langsung ke sana.

Penolakan backend terkait tagihan, penguncian, atau keadaan non-kesalahan.

Artinya

Capgo mendeteksi lalu lintas yang tampaknya berasal dari Google atau infrastruktur cloud. Perbarui yang kurang dari empat jam lalu diabaikan sehingga lalu lintas bot tidak dihitung sebagai perangkat yang dapat dibebankan.

Apa yang harus dilakukan

Abaikan hal ini pada pengguna nyata. Coba lagi dari jaringan normal dan perangkat nyata, atau tunggu dan cek lagi nanti.

Apa artinya

Aplikasi Anda dikonfigurasi untuk memblokir permintaan dari IP alamat Google dan Apple datacenter yang diketahui. Perlindungan berlaku untuk periksa pembaruan, statistik, dan permintaan channel-self, sehingga probe-hosted cloud dan runner provider dapat menerima respons ini bahkan ketika konfigurasi aplikasi lainnya valid.

Apa yang harus dilakukan

Coba lagi dari perangkat fisik di jaringan pengguna normal. Jika lalu lintas yang berasal dari provider sengaja, matikan sementara Blokir permintaan infrastruktur provider di tab Info Konfigurasi aplikasi, kemudian aktifkan lagi setelah tes. Aplikasi baru mengaktifkan pengaturan ini secara default; aplikasi yang sudah ada mempertahankan pengaturan yang sebelumnya dinonaktifkan sampai diubah.

Apa itu

Organisasi Anda telah mencapai batas rencana atau perangkat. Perangkat tidak akan menerima update hingga Anda mengupgrade atau siklus tagihan berikutnya mengatur ulang penggunaan.

Apa yang harus dilakukan

Upgrade rencana Anda di dashboard atau tunggu siklus tagihan berikutnya.

Apa itu

Perangkat sudah memiliki bundle terbaru yang tersedia untuk salurannya. Ini adalah keadaan normal, bukan gagal.

Apa itu

Perangkat telah mengirimkan terlalu banyak permintaan update atau saluran dalam jendela waktu yang singkat.

Apa yang harus dilakukan

Hentikan panggilan API pembaruan di dalam loop render. Panggil setChannel / getChannel hanya dari aksi pengguna, dan atur defaultChannel dalam capacitor.config.

Penolakan backend disebabkan oleh metadata versi native yang tidak valid.

Apa itu

Versi aplikasi native di konfigurasi hilang atau tidak valid semver (x.y.z).

Apa yang harus dilakukan

Set plugins.CapacitorUpdater.version ke semver yang valid, verifikasi di Tes SemVerRebuild dan instal aplikasi native kembali.

Pembatasan backend ketika kebijakan saluran menghalangi platform, jenis pembangunan, atau kelas perangkat.

Apa itu?

Perangkat menjalankan iOS, tetapi pembaruan iOS dinonaktifkan untuk saluran ini.

Apa yang harus dilakukan?

Aktifkan iOS di saluran jika ini tidak sengaja, atau arahkan pembangunan iOS ke saluran dedikasi ketika pembatasan sengaja.

Apa itu?

Perangkat ini menjalankan Android, tetapi pembaruan Android dinonaktifkan untuk saluran ini.

Apa yang harus dilakukan

Aktifkan Android di saluran jika ini adalah kejadian tidak sengaja, atau arahkan pembangunan Android ke saluran dedikasi ketika pemblokiran itu sengaja.

Apa itu

Perangkat ini menjalankan Electron, tetapi pembaruan Electron dinonaktifkan untuk saluran ini.

Apa yang harus dilakukan

Aktifkan Electron di saluran jika ini adalah kejadian tidak sengaja, atau arahkan pembangunan Electron ke saluran dedikasi ketika pemblokiran itu sengaja.

Apa itu

Perangkat ini adalah pembangunan dev, tetapi pembangunan dev diblokir untuk saluran ini.

Apa yang harus dilakukan

Biarkan pembangunan dev di saluran uji, atau jaga agar saluran ini hanya merilis dan pindahkan perangkat dev ke tempat lain.

Apa itu

Sebuah pembangunan produksi disebut /updates, tetapi pembaruan produksi diblokir untuk saluran ini.

Apa yang harus dilakukan

Biarkan pembaruan produksi di saluran jika ini adalah kecelakaan, atau arahkan pembangunan produksi ke saluran yang benar.

Apa itu

Sebuah ponsel atau tablet nyata diblokir karena saluran ini memblokir perangkat nyata.

Apa yang harus dilakukan

Aktifkan pembaruan perangkat nyata jika ini adalah kecelakaan, atau jaga pembatasan dan arahkan perangkat nyata ke saluran lain.

Apa itu

Perangkat ini adalah emulator, tetapi pembaruan emulator dinonaktifkan untuk saluran ini.

Apa yang harus dilakukan

Aktifkan pembaruan emulator di saluran uji, atau jaga saluran ini tidak memungkinkan pembaruan emulator dan gunakan saluran lain untuk validasi emulator.

Penolakan backend ketika aturan semver atau metadata menghalangi paket target.

Apa itu

Pembaruan otomatis dinonaktifkan oleh kebijakan kompatibilitas saluran. Metadata termasuk auto_update dengan aturan yang sesuai seperti __CAPGO_KEEP_0__ major, minor, patch, metadataatau none.

Apa yang harus dilakukan

Ubah kebijakan pembaruan otomatis saluran untuk memungkinkan peluncuran yang diinginkan.

Apa itu

Saluran memiliki paket yang lebih tua dari dasar perangkat dan menghalangi pengiriman pembaruan di bawah versi asli.

Apa yang harus dilakukan

Publikasikan paket di atau di atas dasar native, atau nonaktifkan perlindungan bawah-native di saluran.

Apa itu

Saluran memerlukan min_update_versiontetapi versi asli perangkat lebih rendah dari ambang batas tersebut.

Apa yang harus dilakukan

Atur min_update_version di bundle atau rilis target dari versi native yang lebih baru.

Apa itu artinya

Saluran menghalangi lonjakan versi utama, misalnya 1.x.x ke 2.x.x.

Apa yang harus dilakukan

Sesuaikan strategi saluran dengan rencana peluncuran utama Anda, atau biarkan lonjakan utama untuk jalur ini. Lihat Masalah Pembaruan Umum.

Apa itu artinya

Channel ini memblokir lonjakan versi minor relatif terhadap dasar native perangkat (version_build), misalnya 1.2.3 Apa yang harus dilakukan 1.3.0.

Sesuaikan strategi saluran dengan rencana rilis minor Anda, atau biarkan lonjakan minor untuk track ini.

Judul bagian “disableAutoUpdateToPatch”

disableAutoUpdateToPatch

Apa artinya

Saluran memblokir perubahan level patch sementara menjaga yang sama

prefix; hanya perubahan suffix yang diizinkan. MAJOR.MINOR.PATCH Apa yang harus dilakukan

Sesuaikan ritme rilis dengan kebijakan saluran, atau biarkan lonjakan patch untuk track ini.

Pengaturan saluran

Penolakan backend disebabkan oleh pengaturan saluran yang hilang atau tidak kompatibel.

Apa itu

Perangkat mencoba mengasosiasikan diri sendiri dengan saluran privat yang tidak memungkinkan pengasosiasi perangkat secara otomatis (allow_device_self_set is false) dan saluran bukanlah publik.

Apa yang harus dilakukan

Aktifkan allow_device_self_set pada saluran atau ubah perangkat ke saluran publik atau yang diizinkan.

Apa itu

Saluran yang digunakan disable_auto_update: "version_number" tetapi bundel itu tidak ada, jadi __CAPGO_KEEP_0__ tidak bisa menentukan perangkat mana yang harus diperbarui. min_update_version is null, so Capgo cannot decide which devices should update.

Isi konfigurasi yang hilang untuk aturan itu atau beralih ke mode auto-update yang lebih sederhana.

Bagian berjudul “NoChannelOrOverride”

NoChannelOrOverride

Apa itu

Tidak ada saluran default yang dikonfigurasi dan perangkat tidak memiliki pengaturan saluran override.

Apa yang harus dilakukan

Tetapkan saluran default di dashboard atau konfigurasi

di dalam pembangunan. defaultChannel Pengiriman dan enkripsi bundel

Bagian berjudul “Pengiriman dan enkripsi bundel”

Apa yang harus dilakukan

Kegagalan backend ketika Capgo tidak dapat menyediakan atau memecahkan bundle.

Apa itu

Capgo gagal menghasilkan URL download yang ditandatangani secara valid dan tidak ada fallback manifest yang tersedia.

Apa yang harus dilakukan

Unggah ulang bundle, regenerasi manifest, dan verifikasi pengaturan R2 atau bundle publik.

Apa itu

Bundle yang ditugaskan ke saluran tidak memiliki konten yang dapat diunduh: tidak ada external_url, tidak ada r2_path, bukan versi bawaan, dan tidak ada entri manifest.

Apa yang harus dilakukan

Rebuild dan unggah ulang versi, kemudian pastikan bundel memiliki konten file yang sebenarnya.

Apa itu

Kunci enkripsi perangkat tidak sesuai dengan kunci yang digunakan untuk mengenkripsi bundel. Metadata dapat mencakup device_key_id, bundle_key_id, dan version.

Apa yang harus dilakukan

Bandingkan ID kunci perangkat dan bundel di konsol. Publikasikan dengan kunci yang sama dan versi plugin yang sesuai dengan CLI.

Penolakan backend yang disebabkan oleh pengaturan aplikasi atau versi pembaruan yang tidak didukung.

Apa itu

The aplikasi mengirimkan ID perangkat khusus, tetapi aplikasi ini tidak menerima ID khusus, sehingga ID diabaikan.

Apa yang harus dilakukan

Hentikan pengiriman ID khusus, atau aktifkan ID khusus hanya ketika alur kerja Anda memerlukannya.

Apa artinya

server.url is set in Capacitor config, so the WebView loads a remote URL instead of local bundle files. Capgo live updates require local files and server.url __CAPGO_KEEP_1__ pembaruan hidup memerlukan file lokal dan

tidak disarankan dalam produksi.

Apa yang harus dilakukan server.url for production builds and keep update payloads local. This code can appear as a backend refusal or as a device-side stat.

Judul bagian “backend_refusal”

Plugin pembaruan adalah v4, yang tidak lagi diterima oleh backend.

Apa yang harus dilakukan

Upgrade plugin dan CLI ke v5+ (prefer v8) dengan Capacitor v5+, rebuild, dan republish metadata paket.

Event perangkat sisi untuk aliran pembaruan normal, aktivasi, dan rollback.

Apa itu

Aksi uji internal digunakan untuk memverifikasi pipa statistik.

Apa itu

Capgo mengirim informasi download untuk versi baru ke perangkat.

Apa itu

Sebuah bundle diaktifkan pada perangkat.

Apa itu

Sebuah bundle gagal diaktifkan pada perangkat.

Apa yang harus dilakukan

Periksa log native dengan npx @capgo/cli@latest app debug dan verifikasi integritas bundle, jalur, dan notifyAppReady aliran.

Apa itu

Perangkat kembali ke bundle bawaan.

Apa itu

Satu bundle dihapus dari perangkat.

Event perangkat untuk kemajuan download, validasi arsip, dan kesalahan instalasi.

Apa itu

Sequensi download dimulai pada 0% kemajuan.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 10%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 20%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 30%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 40%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 50%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 60%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 70%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 80%.

Apa itu

Sebuah bundle baru telah diunduh — kemajuan ditunjukkan pada 90%.

Apa itu

Pengunduhan bundle selesai dengan sukses.

Apa itu

Perangkat mulai mengunduh manifest update.

Apa itu

Perangkat telah selesai mengunduh manifest update.

Apa itu

Perangkat mulai mengunduh arsip bundle.

Apa itu?

Perangkat telah selesai mengunduh arsip bundle.

Apa itu?

Satu entri manifest gagal diunduh. version_name digunakan version:fileName untuk mengidentifikasi aset.

Apa yang harus dilakukan?

Perbaiki aset yang hilang atau diblokir, regenerasi manifest, dan re-unggah bundle.

Apa itu

File manifest gagal memvalidasi ceksum.

Apa yang harus dilakukan

Unggah kembali bundle dengan versi CLI saat ini dan verifikasi ceksum manifest.

Apa itu

File manifest gagal me decompress Brotli.

Apa yang harus dilakukan

Verifikasi pengaturan kompresi dan unggah kembali asset yang terpengaruh.

Apa itu

Bundle gagal diunduh.

Apa yang harus dilakukan

Periksa koneksi jaringan, kadaluarsa URL yang ditandatangani, ketersediaan CDN, dan penyimpanan perangkat.

Apa itu berarti

Bundel terpasang tetapi aplikasi tidak pernah memanggilnya, sehingga __CAPGO_KEEP_0__ diulang. notifyAppReady, so Capgo rolled back.

Tetapkan

setelah aplikasi selesai melakukan bootstrapping. Teks log native notifyAppReady() diterjemahkan ke __CAPGO_KEEP_0__. notifyAppReady was not called, roll back current bundle maps to this code.

checksum_fail

Apa itu berarti

Apa yang harus dilakukan

The bundle yang diunduh gagal memvalidasi ceksum. Penyebab umum: kesalahan ceksum CRC32 vs SHA256 dari unggahan lama CLI, atau kesalahan kunci enkripsi pada plugin yang lebih tua yang menampilkan gagal dekripsi sebagai gagal ceksum.

Apa yang harus dilakukan

Unggah ulang dengan CLI/plugin (SHA256) yang terkini. Jika menggunakan enkripsi, pastikan kunci publik aplikasi sesuai dengan kunci unggah, atau upgrade ke plugin 8.3.0+ untuk kesalahan eksplisit. keyMismatch Gagal

decrypt_fail

Apa artinya

Gagal mengunduh bundle untuk mendekripsi.

Apa yang harus dilakukan

Verifikasi kunci enkripsi dan unggah ulang bundle dengan pasangannya kunci.

Gagal

windows_path_fail

Apa artinya

Bundel zip mengandung jalur Windows yang tidak sah.

Apa yang harus dilakukan

Apa yang harus dilakukan

Rebuild bundle pada jalur Unix atau sanitasi jalur arsip sebelum mengunggah.

Apa itu artinya

Jalur file di dalam zip tidak kanonik.

Apa yang harus dilakukan

Perbaiki penghasilan jalur arsip sebelum mengunggah.

Apa itu artinya

Zip mengandung jalur direktori yang tidak valid.

Apa yang harus dilakukan

Perbaiki struktur arsip sebelum mengunggah.

Artinya

Perangkat gagal mengunzip bundle yang diunduh.

Apa yang harus dilakukan

Periksa integritas arsip dan kompresi yang didukung.

Artinya

Pembundaran gagal karena perangkat kehabisan memori.

Apa yang harus dilakukan

Kurangi ukuran bundle atau ulangi pada perangkat dengan memori yang lebih luas.

Diagnostics perangkat sisi, crash, dan memory, serta WebView. Selalu inspeksi metadata JSON di dashboard.

Apa itu

Aplikasi masuk ke latar belakang.

Apa itu

Aplikasi masuk ke depan.

Apa itu

Crash JavaScript atau lapisan Capacitor. Metadata dapat mencakup pesan, stack, sumber, dan konteks bundle aktif.

Apa yang harus dilakukan

Inspeksi metadata dan log native. Pasang laporan kesalahan JS dan native (misalnya Sentry) untuk menemukan jalur code yang gagal.

Apa itu?

Kegagalan platform native. Metadata dapat mencakup platform, alasan, stack, dan detail proses.

Apa yang harus dilakukan?

Gunakan log crash Xcode atau Logcat dan korelasikan dengan bundle aktif dari metadata.

Apa itu?

Event Tidak Membalas Aplikasi Android.

Apa yang harus dilakukan?

Periksa jejak ANR di Logcat dan kurangi pekerjaan penghalang utama setelah pembaruan.

Apa itu?

OS membunuh aplikasi setelah tekanan memori.

Apa yang harus dilakukan

Kurangi penggunaan memori setelah aktivasi update dan inspeksi metadata untuk sinyal memori yang tersedia.

Apa itu artinya

OS membunuh aplikasi karena penggunaan sumber daya yang berlebihan.

Apa yang harus dilakukan

Inspeksi metadata untuk jenis sumber daya atau alasan platform.

Apa itu artinya

Updater atau startup gagal sebelum runtime normal siap.

Apa yang harus dilakukan

Periksa metadata untuk langkah yang gagal dan pesan kesalahan.

Apa itu

Peringatan memori iOS.

Apa yang harus dilakukan

Periksa konteks memori dalam metadata dan kurangi penggunaan puncak setelah pembaruan.

Apa itu

Kesalahan JavaScript yang tidak ditangani di WebView. Metadata dapat mencakup pesan, URL sumber, baris, kolom, dan stack.

Apa yang harus dilakukan

Pasang laporan kesalahan di lapisan JS dan native untuk menangkap baris yang gagal secara tepat di produksi.

Apa itu

Penolakan reaksi promise yang tidak dihandle dalam WebView.

Apa yang harus dilakukan

Tangkap gagal asinkron dengan laporan kesalahan JS dan native.

Apa itu

Sumber daya WebView gagal dimuat.

Apa yang harus dilakukan

Gunakan URL metadata dan detail status untuk memperbaiki asset yang rusak atau aturan jaringan.

Apa itu

Pengaturan keamanan konten menghalangi sumber daya.

Apa yang harus dilakukan

Atur CSP menggunakan direktif metadata dan detail URI yang diblokir.

Apa itu artinya

Sesi WebView sebelumnya tidak ditutup dengan bersih, yang dapat menunjukkan loop crash setelah pembaruan.

Apa yang harus dilakukan

Korelasikan dengan event crash dan kesalahan WebView sebelum dan setelah restart.

Apa itu artinya

Proses render Android WebView keluar.

Apa yang harus dilakukan

Periksa signal crash renderer di metadata dan log native.

Apa itu?

iOS WebView content process dihentikan.

Apa yang harus dilakukan?

Periksa bundle aktif dan URL halaman dari metadata.

Acara konteks perangkat yang membantu menghubungkan perilaku pembaruan dengan OS, versi native, atau perubahan saluran.

Apa itu?

Versi OS perangkat berubah antara pengecekan.

Apa itu

Versi aplikasi native di toko berubah, membantu memisahkan perubahan bundle native vs web.

Apa itu

Perangkat yang ditanyakan saluran saat ini.

Apa itu

Saluran berhasil ditetapkan untuk perangkat.

Apa itu

Aplikasi dihapus atau Capgo data dihapus.

Status bundle

Status Paket
  • SUCCESS: instalasi paket selesai
  • ERROR: instalasi atau download gagal
  • PENDING: Download selesai, menunggu rilis
  • DELETED: Paket dihapus, masih ditampilkan untuk statistik
  • DOWNLOADING: Saat ini mengunduh paket

Ada perintah debug untuk pengguna Capgo cloud.

Jendela Terminal
npx @capgo/cli@latest app debug

Menggunakan ini akan memungkinkan Anda untuk memeriksa semua event yang terjadi di aplikasi dan menemukan solusi jika pembaruan tidak terjadi.

Untuk menemukan log Anda di Xcode

Untuk menemukan log Anda di Android Studio

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

Untuk debug di iOS, Anda perlu membuang aplikasi di komputer Anda, Anda bisa melakukannya seperti ini:

Xcode memiliki fitur bawaan untuk memeriksa sistem file aplikasi pengembang yang diinstal di perangkat iOS. Menu Xcode Window menampilkan opsi Devices dan Simulators

Untuk mencapai hal ini:

  • Hubungkan perangkat Anda ke Mac Anda dan pilih Window > Devices di menu menubar Xcode.
  • Pilih perangkat Anda di panel kiri di bawah bagian Devices.
  • This akan menampilkan daftar aplikasi yang diinstal oleh pengembang untuk perangkat tersebut.
  • Pilih aplikasi yang ingin Anda inspeksi dan kemudian pilih ikon 3 titik di bagian bawah layar.
  • Di sini Anda dapat melihat sistem file saat ini dengan memilih download snapshotnya.

Panel Xcode Devices menampilkan opsi download aplikasi kontainer.

Pilih Download Container… akan mengunduh dan mengekspor snapshot sistem file sebagai file .xcappdata yang dapat Anda jelajahi.

File xcappdata yang telah diunduh dengan konteks menu Show Package Contents

Klik kanan pada file ini dan pilih Show Package Contents untuk membuka folder.

Buka folder App Data, dan Anda seharusnya dapat melihat beberapa folder seperti Documents, Library, tmp, dll.

Struktur folder kontainer aplikasi iOS menampilkan folder Documents dan Library

Lalu Anda akan menemukan versi di 2 folder:

library/NoCloud/ionic_built_snapshots perlu dilakukan setelah aplikasi di-reboot

dan documents/versions untuk reload panas

Untuk debug di Android, Anda perlu mengakses perangkat dari Android Studio:

  • Klik View > Jendela Alat > Pemutus File Perangkat atau klik tombol Pemutus File Perangkat di bar jendela alat untuk membuka Pemutus File Perangkat.
  • Pilih perangkat dari daftar dropdown.
  • Buka jalur data/data/NAMA_APLIKASI/ di mana NAMA_APLIKASI adalah ID aplikasi Anda.

Pemutus File Perangkat Android Studio menampilkan direktori data aplikasi

Lalu Cari versions folder untuk melihat semua versi

Jika kamu menggunakan Debugging untuk merencanakan pekerjaan plugin native, hubungkannya Untuk kemampuan asli di @capgo/capacitor-updater Untuk kemampuan asli di @capgo/capacitor-updater, Daftar Direktori Plugin Capgo Untuk alur kerja produk di Daftar Direktori Plugin Capgo, Plugin-Plugin Capacitor oleh Capgo Untuk detail implementasi di Plugin-Plugin Capacitor oleh Capgo, Menambahkan atau Mengupdate Plugin Untuk detail implementasi di Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic Untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.