Pindah 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 tersebut. Di dashboard, filter berdasarkan aksi snake_case code, dan klik sel 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.

Masing-masing judul bagian sesuai dengan aksi code yang ditampilkan di tabel log console, sehingga Anda dapat menghubungkannya secara langsung.

Penolakan backend terkait tagihan, pengurangan kecepatan, atau keadaan non-kesalahan.

Artinya apa?

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

What to do

Abaikan pada pengguna nyata. Ulangi dari jaringan normal dan perangkat nyata, atau tunggu dan periksa lagi nanti.

Artinya apa?

Aplikasi Anda dikonfigurasi untuk memblokir permintaan dari IP range datacenter Google dan Apple yang diketahui. Perlindungan ini berlaku untuk pengecekan update, statistik, dan permintaan channel-self, sehingga probe dan runner penyedia di cloud dapat menerima respons ini bahkan ketika konfigurasi aplikasi lainnya masih valid.

What to do

Coba lagi dari perangkat fisik di jaringan pengguna normal. Jika trafik yang berasal dari penyedia sengaja, matikan sementara Blokir permintaan infrastruktur penyedia di dalam aplikasi Information Aktifkan tab tersebut, kemudian nonaktifkan kembali setelah tes. Aplikasi baru mengaktifkan pengaturan ini secara default; aplikasi yang sudah ada akan mempertahankan pengaturan sebelumnya yang dinonaktifkan sampai diubah.

Upgrade rencana di dashboard atau tunggu siklus pembayaran berikutnya.

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

What to do

Naikkan paket Anda di dashboard atau tunggu siklus pembayaran berikutnya.

What it means

Perangkat sudah memiliki paket terbaru yang tersedia untuk saluran perangkatnya. Ini adalah keadaan normal, bukan gagal.

What it means

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

What to do

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

Penolakan backend disebabkan oleh metadata versi native yang tidak valid.

What it means

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

What to do

Set plugins.CapacitorUpdater.version untuk valid semver, pastikan di SemVer testerke versi semver yang valid, verifikasi di

Target platform dan pembangunan aplikasi native (Platform dan Build Targeting)

What it means

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

What to do

Nonaktifkan iOS di saluran jika ini tidak sengaja, atau arahkan bangun iOS ke saluran dedikasi ketika pemblokiran sengaja.

What it means

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

What to do

Aktifkan Android di saluran jika ini adalah kesalahan, atau arahkan pembangunan Android ke saluran yang khusus ketika pemblokiran sengaja.

What it means

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

What to do

Aktifkan Electron di saluran jika ini tidak sengaja, atau arahkan bangun Electron ke saluran dedikasi ketika pemblokiran sengaja.

Apa artinya

Perangkat ini adalah bangun pengembangan, tetapi bangun pengembangan diblokir untuk saluran ini.

What to do

Izinkan bangun pengembangan di saluran uji, atau jaga saluran ini hanya untuk rilis dan pindahkan perangkat pengembangan ke tempat lain.

Apa artinya

Bangun produksi yang disebut /updates, tetapi pembaruan produksi diblokir untuk saluran ini.

What to do

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

Apa artinya

Telepon nyata atau tablet diblokir karena saluran ini memblokir perangkat nyata.

What to do

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

Apa artinya

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

What to do

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

Penolakan backend ketika aturan semver atau metadata menghalangi paket target.

What it means

Pembaruan otomatis dimatikan oleh kebijakan kompatibilitas saluran. Metadata termasuk auto_update dengan aturan yang sesuai seperti major, minor, patch, metadata, atau none.

What to do

Ubah kebijakan pembaruan otomatis saluran untuk memungkinkan peluncuran yang diinginkan.

What it means

Saluran ini memiliki paket yang lebih tua daripada garis dasar perangkat dan menghalangi pengiriman pembaruan di bawah versi native.

What to do

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

Apa artinya?

Saluran ini memerlukan min_update_version, tetapi versi native perangkat di bawah itu.

What to do

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

Apa artinya?

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

What to do

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

What it means

Saluran ini menghalangi lonjakan versi minor relatif terhadap dasar garis native perangkat (version_build), misalnya 1.2.3 ke 1.3.0.

What to do

Sesuaikan strategi saluran dengan rencana rilis minor Anda, atau izinkan lonjakan minor untuk jalur ini.

Apa artinya

Sementara channel menghalangi perubahan level patch, tetap mempertahankan MAJOR.MINOR.PATCH Hanya perubahan sufiks yang diizinkan.

What to do

Sesuaikan ritme rilis dengan kebijakan saluran, atau izinkan lonjakan patch untuk jalur ini.

Kesalahan backend disebabkan oleh konfigurasi saluran yang hilang atau tidak kompatibel.

Apa artinya

Perangkat mencoba mengasosiasikan diri sendiri dengan saluran pribadi yang tidak memungkinkan pengasosiasian perangkat sendiri ("allow_device_self_set apakah salah) dan saluran ini tidak publik.

What to do

Mengaktifkan allow_device_self_set di saluran atau beralih perangkat ke saluran publik atau yang diizinkan.

What it means

Saluran menggunakan disable_auto_update: "version_number" tetapi paket min_update_version kosong, sehingga Capgo tidak dapat menentukan perangkat mana yang harus diperbarui.

What to do

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

What it means

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

What to do

Atur saluran default di dashboard atau konfigurasi defaultChannel Pengiriman dan enkripsi bundle

Bagian berjudul “Pengiriman dan enkripsi bundle”

Pengiriman Paket dan Pengenkripsi

Kesalahan Backend ketika Capgo tidak dapat menyediakan atau memecahkan bundle.

What it means

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

What to do

Ulangkan bundle, regenerasi manifest, dan verifikasi R2 atau pengaturan bundle publik.

What it means

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.

What to do

Rebuild dan ulangkan versi, kemudian pastikan bundle memiliki konten file yang nyata.

What it means

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

What to do

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

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

Apa artinya

Aplikasi mengirimkan ID perangkat kustom, tetapi aplikasi ini tidak menerima ID kustom, sehingga ID diabaikan.

What to do

Hentikan mengirimkan ID kustom, atau aktifkan ID kustom hanya ketika workflow Anda memerlukan mereka.

Apa artinya

server.url Konfigurasi ini diatur di Capacitor konfigurasi, sehingga WebView memuat URL remote daripada file bundle lokal. Capgo pembaruan live memerlukan file lokal dan server.url tidak disarankan dalam produksi.

What to do

Hapus atau kosongkan server.url untuk pembangunan produksi dan jaga muatan pembaruan lokal. Hal ini code dapat muncul sebagai penolakan backend atau sebagai statistik perangkat.

Apa artinya

Plugin pembaruan telah mencapai versi 4, yang tidak lagi diterima oleh backend.

What to do

Perbarui plugin dan CLI ke versi 5+ (preferensi versi 8) dengan Capacitor versi 5+, direkonstruksi, dan republish metadata bundle.

Peristiwa perangkat untuk aliran pembaruan normal, aktivasi, dan rollback.

Apa artinya

Aksi uji internal digunakan untuk memastikan pipa statistik.

Apa artinya

Capgo mengirim informasi download untuk versi baru ke perangkat.

Apa artinya

Sebuah paket diaktifkan di perangkat.

Apa artinya

A bundle gagal diaktifkan pada perangkat.

What to do

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

Apa artinya?

Perangkat direset ke bundle bawaan.

Apa artinya?

Satu bundle dihapus pada perangkat.

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

What it means

Sequences download dimulai pada 0% kemajuan.

What it means

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

What it means

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

What it means

Bundle baru telah diunduh — kemajuan ditunjukkan pada 30%.

What it means

Bundle baru telah diunduh — kemajuan ditunjukkan pada 40%.

What it means

Bundle baru telah diunduh — kemajuan ditunjukkan pada 50%.

What it means

Bundle baru telah diunduh — kemajuan ditunjukkan pada 60%.

Apa artinya

Bundle baru telah diunduh — kemajuan ditunjukkan pada 70%.

Apa artinya

Bundle baru telah diunduh — kemajuan ditunjukkan pada 80%.

Apa artinya

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

Apa artinya

Bagian berjudul “download_manifest_start”

Apa artinya

Perangkat mulai mengunduh manifest update.

Apa artinya

Perangkat telah selesai mengunduh manifest update.

Apa artinya

Perangkat mulai mengunduh arsip bundle.

Apa artinya

Perangkat telah selesai mengunduh arsip bundle.

What it means

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

What to do

Perbaiki asset yang hilang atau diblokir, regenerasi manifest, dan re-upload bundle.

What it means

File manifest gagal memvalidasi checksum.

What to do

Re-upload bundle dengan versi CLI saat ini dan verifikasi checksum manifest.

Apa artinya

File manifest gagal melepas kompresi Brotli.

What to do

Periksa pengaturan kompresi dan unggah kembali aset yang terkena dampak.

Apa artinya

The bundle failed to download.

What to do

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

Apa artinya

Paket diinstal tetapi aplikasi tidak pernah memanggilnya. notifyAppReady, sehingga Capgo kembali ke versi sebelumnya.

What to do

Call notifyAppReady() Setelah aplikasi Anda selesai melakukan bootstrapping. notifyAppReady was not called, roll back current bundle berlaku untuk code.

Bundle yang diunduh gagal memvalidasi checksum. Penyebab umum: kesalahan CRC32 vs SHA256 dari upload lama __CAPGO_KEEP_0__, atau kesalahan kunci enkripsi pada plugin yang lebih tua yang menampilkan gagal dekripsi sebagai gagal checksum.

Ulangi upload dengan CLI/plugin yang terkini (SHA256). Jika menggunakan enkripsi, pastikan kunci publik aplikasi sesuai dengan kunci upload, atau upgrade ke plugin 8.3.0+ untuk penggunaan eksplisit

What to do

Re-upload with a current CLI/plugin (SHA256). If using encryption, verify the app public key matches the upload key, or upgrade to plugin 8.3.0+ for explicit keyMismatch errors.

Apa artinya

Bundle yang diunduh gagal dienkripsi.

What to do

Verifikasi kunci enkripsi dan unggah kembali bundle dengan pasangan kunci yang sesuai.

Apa artinya

Arsip zip mengandung jalur Windows ilegal.

What to do

Rebuild bundle dengan menggunakan jalur Unix atau sanitasi jalur arsip sebelum unggah.

Apa artinya

Jalur file di dalam zip tidak kanonik.

What to do

Perbaiki jalur arsip sebelum unggah.

Apa itu berarti

Arsip zip mengandung jalur direktori yang tidak valid.

What to do

Perbaiki struktur arsip sebelum unggah.

Apa itu berarti

Perangkat gagal mengekstrak arsip yang diunduh.

What to do

Verifikasi integritas arsip dan kompresi yang didukung.

What it means

Unduh gagal karena perangkat kehabisan memori.

What to do

Kurangi ukuran paket atau ulangi pada perangkat dengan lebih banyak memori gratis.

Diagnosa crash, memori, dan WebView di perangkat. Selalu inspect metadata JSON di dashboard.

What it means

Aplikasi masuk ke latar belakang.

What it means

Aplikasi masuk ke latar belakang.

What it means

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

What to do

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

What it means

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

What to do

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

What it means

Event aplikasi Android tidak responsif.

What to do

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

What it means

OS membunuh aplikasi setelah tekanan memori.

What to do

Kurangi penggunaan memori setelah aktivasi pembaruan dan periksa metadata untuk sinyal memori yang tersedia.

What it means

OS membunuh aplikasi karena penggunaan sumber daya yang berlebihan.

What to do

Periksa metadata untuk jenis atau alasan platform sumber daya.

Artinya apa?

Updater atau startup gagal sebelum runtime normal siap.

What to do

Periksa metadata untuk langkah gagal dan pesan kesalahan.

Artinya apa?

Pemberitahuan memori iOS.

What to do

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

Apa artinya

Error JavaScript tidak terdeteksi di WebView. Metadata dapat mencakup pesan, URL sumber, baris, kolom, dan stack.

What to do

Instal laporan error di lapisan JavaScript dan native untuk menangkap baris gagal yang tepat di produksi.

Apa artinya

Pengakuan janji tidak terlayani di WebView.

What to do

Temukan gagal asinkron dengan laporan error JavaScript dan native.

Apa artinya

Sumber WebView gagal dimuat.

What to do

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

Apa artinya

Kebijakan keamanan konten memblokir sumber daya.

What to do

Berikan CSP yang disesuaikan menggunakan direktif metadata dan detail URI yang diblokir.

Apa artinya

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

What to do

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

Apa artinya

Proses render Android WebView telah keluar.

What to do

Periksa signal kegagalan renderer dalam metadata dan log native.

Apa artinya

Proses konten WebView iOS telah dihentikan.

What to do

Periksa bundle aktif dan URL halaman dari metadata.

Konteks lingkungan dan saluran

Judul Bagian: Konteks Lingkungan dan Saluran

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

What it means

Perubahan versi OS perangkat antara periksa.

What it means

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

What it means

Perangkat meminta saluran saat ini.

What it means

Salah satu saluran telah ditetapkan dengan sukses untuk perangkat.

What it means

Aplikasi telah dihapus atau Capgo data telah dihapus.

  • SUCCESS: Paket terpasang dengan sukses
  • ERROR: Instalasi paket gagal atau gagal download
  • PENDING: Download selesai, menunggu rilis
  • DELETED: Paket dihapus, tetap ditampilkan untuk statistik
  • DOWNLOADING : Saat ini mengunduh bundle

Ada perintah debug untuk pengguna cloud Capgo.

Jendela terminal
npx @capgo/cli@latest app debug

Fitur ini akan memungkinkan Anda untuk memeriksa semua kejadian yang terjadi di aplikasi dan menemukan solusi jika update tidak berjalan.

untuk menemukan log Anda di Xcode

Untuk menemukan log Anda di Android Studio

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

Mencari bundle yang diunduh di perangkat

Judul Bagian: Mencari bundle yang diunduh di perangkat

Untuk mengembangkan pada 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 bar Xcode.
  • Pilih perangkat Anda di panel kiri di bawah bagian Devices.
  • Hal ini akan menampilkan daftar aplikasi pengembang yang diinstal di perangkat tersebut.
  • Pilih aplikasi yang ingin Anda periksa, 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 kontainer aplikasi

Mengunduh Kontainer… akan mengunduh dan mengekspor snapshot dari sistem file sebagai file .xcappdata yang dapat Anda jelajahi.

File xcappdata telah diunduh dengan menu konteks Tampilkan Isi Paket

Klik kanan pada file ini dan pilih Tampilkan Isi Paket untuk membuka folder.

Buka folder Data Aplikasi, dan Anda seharusnya melihat beberapa folder seperti Dokumen, Library, tmp, dll.

Struktur folder kontainer aplikasi iOS menampilkan folder Dokumen dan Library

Lalu Anda akan menemukan versi di 2 folder:

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

dan documents/versions reload panas

Untuk mengembangkan perangkat Android, Anda perlu mengakses perangkat dari Android Studio:

  • Click View > Tool Windows > Device File Explorer or click the Device File Explorer button in the tool window bar to open the Device File Explorer.
  • Pilih perangkat dari daftar dropdown.
  • Buka jalur data/data/NAMA_APLIKASI/ dimana NAMA_APLIKASI adalah ID aplikasi Anda.

Android Studio File Explorer Perangkat Menampilkan direktori data aplikasi

Kemudian Cari versions folder untuk melihat semua versi

Jika Anda menggunakan Debugging untuk merencanakan pekerjaan plugin native, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan native di Menggunakan @capgo/capacitor-updater, Capgo Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugins oleh Capgo Tambahkan atau Perbarui Plugins untuk detail implementasi di Tambahkan atau Perbarui Plugins, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.