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 event. Di dashboard, filter berdasarkan aksi snake_case code, dan klik sel metadata untuk menyalin payload JSON penuh. Metadata sangat berguna untuk event 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 legasi yang terdaftar dalam tanda kurung.

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

Keterusanan belakang terkait tagihan, pembatasan, atau keadaan non-error.

Apa itu?

Capgo mendeteksi lalu lintas yang tampaknya berasal dari Google atau infrastruktur cloud. Perbarui yang kurang dari empat jam lalu diabaikan agar 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 coba lagi nanti.

Apa itu?

Aplikasi Anda dikonfigurasi untuk memblokir permintaan dari IP alamat Google dan Apple datacenter yang diketahui. Perlindungan ini berlaku untuk periksa update, statistik, dan permintaan channel-self, sehingga probe cloud-hosted 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 asal provider sengaja, matikan sementara Blokir permintaan infrastruktur provider di aplikasi’s Informasi tab, kemudian aktifkan lagi setelah tes. Aplikasi baru mengaktifkan pengaturan ini secara default; aplikasi yang sudah ada mempertahankan pengaturan sebelumnya yang dinonaktifkan sampai diubah.

Apa artinya

Organisasi Anda telah mencapai batas paket atau perangkat. Perangkat tidak akan menerima update sampai Anda mengupgrade atau siklus pembayaran berikutnya mengatur ulang penggunaan.

Apa yang harus dilakukan

Upgrade paket Anda di dashboard atau tunggu siklus pembayaran berikutnya.

Apa artinya

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

Apa itu artinya

Perangkat mengirimkan terlalu banyak permintaan pembaruan 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 artinya

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

Apa yang harus dilakukan

Setel plugins.CapacitorUpdater.version ke versi semver yang valid, pastikan dengan menggunakan Tester SemVer, kemudian bangun kembali dan instal aplikasi native.

Bagian Platform dan Target Pembangunan

Bagian berjudul “Platform dan Target Pembangunan”

Pengembalian Backend ketika kebijakan saluran menghalangi platform, jenis bangun, atau kelas perangkat.

Apa itu artinya

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 khusus ketika pemblokiran sengaja.

Artinya apa?

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

Apa yang harus dilakukan?

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

Artinya apa?

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

Apa yang harus dilakukan?

Aktifkan Electron di saluran jika ini tidak sengaja, atau arahkan pembangunan Electron ke saluran khusus ketika pemblokiran sengaja.

Apa artinya

Perangkat ini adalah build pengembangan, tetapi build dev diblokir untuk saluran ini.

Apa yang harus dilakukan

Izinkan build dev di saluran uji, atau jadikan saluran ini hanya untuk rilis dan pindahkan perangkat dev ke tempat lain.

Apa artinya

Sebuah build produksi bernama /updates, tetapi pembaruan produksi diblokir untuk saluran ini.

Apa yang harus dilakukan

Izinkan pembaruan produksi di saluran jika ini tidak sengaja, atau arahkan build produksi ke saluran yang benar.

Apa artinya

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

Apa yang harus dilakukan

Aktifkan pembaruan perangkat nyata jika ini adalah kejadian tidak sengaja, atau tetapkan pembatasan dan arahkan perangkat nyata ke saluran lain.

Apa artinya

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

Apa yang harus dilakukan

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

Aturan kompatibilitas pembaruan otomatis

Judul bagian “Auto-update compatibility rules”

Penolakan backend ketika aturan semver atau metadata memblokir paket target.

Apa artinya

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

Apa yang harus dilakukan

Ubah kebijakan pembaruan otomatis saluran untuk memungkinkan peluncuran yang diinginkan Anda.

Apa artinya

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 asli, atau nonaktifkan perlindungan di bawah asli di saluran.

Apa itu?

Salah satu saluran memerlukan min_update_version, tetapi versi asli perangkat lebih rendah dari ambang batas tersebut.

Apa yang harus dilakukan?

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

Apa itu?

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 track ini. Lihat Masalah Pembaruan Umum.

Apa itu

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

Apa yang harus dilakukan

Sinkronkan strategi saluran dengan rencana peluncuran minor Anda, atau biarkan lonjakan minor untuk jalur ini.

Apa itu

Saluran menghalangi perubahan tingkat patch sementara menjaga prefix yang sama; hanya perubahan sufiks yang diizinkan. MAJOR.MINOR.PATCH Apa itu

Apa yang harus dilakukan

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

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

Apa artinya

Perangkat mencoba mengasosiasikan diri dengan saluran privat yang tidak memungkinkan pengasosiasian perangkat sendiri (allow_device_self_set adalah salah) 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?

Salah satu saluran menggunakan disable_auto_update: "version_number" tetapi bundel min_update_version kosong, sehingga Capgo tidak dapat menentukan perangkat mana yang harus diperbarui.

Apa yang harus dilakukan?

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

Apa itu?

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

Apa yang harus dilakukan?

Konfigurasi saluran default di dashboard atau pengaturan defaultChannel di dalam proses pembangunan.

Backend refusals when Capgo cannot serve or decrypt the bundle.

Apa itu berarti

Capgo failed to generate a valid signed download URL and no manifest fallback was available.

Apa yang harus dilakukan

Ulangi mengunggah bundle, regenerasi manifest, dan verifikasi pengaturan R2 atau bundle publik.

Apa itu berarti

Bundle yang ditugaskan ke saluran tidak memiliki konten yang dapat diunduh: tidak ada external_urlApa yang harus dilakukan, tidak ada. r2_pathTidak ada versi bawaan, dan tidak ada entri manifest.

Apa yang harus dilakukan.

Rebuild dan re-upload versi, lalu pastikan bundle memiliki konten file yang sebenarnya.

Apa artinya.

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

Apa yang harus dilakukan.

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 pembarui yang tidak didukung.

Apa itu?

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 itu?

server.url Capacitor diatur dalam konfigurasi, sehingga WebView memuat URL remote daripada file bundle lokal. Capgo pembarui hidup memerlukan file lokal dan server.url disarankan untuk tidak digunakan dalam produksi.

Apa yang harus dilakukan?

Hapus atau bersihkan server.url untuk pembangunan produksi dan simpan muatan pembaruan lokal. Ini code dapat muncul sebagai penolakan backend atau sebagai status perangkat.

Apa itu?

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

Apa yang harus dilakukan?

Perbarui 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 mengirimkan informasi download untuk versi baru ke perangkat.

Apa itu

Mengaktifkan bundle gagal pada perangkat.

Periksa log native dengan

dan pastikan integritas bundle, jalur, dan

__CAPGO_KEEP_0__ mengirimkan informasi download untuk versi baru ke perangkat.

Mengaktifkan bundle gagal pada perangkat. npx @capgo/cli@latest app debug Periksa log native dengan notifyAppReady Aliran.

Apa itu?

Perangkat telah direset ke bundle bawaan.

Apa itu?

Satu bundle telah dihapus dari perangkat.

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

Apa itu?

Urutan download dimulai pada 0% kemajuan.

Apa itu?

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

Apa itu?

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

Apa itu?

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

Apa itu?

A paket baru telah diunduh — kemajuan ditunjukkan pada 40%.

Apa artinya

A paket baru telah diunduh — kemajuan ditunjukkan pada 50%.

Apa artinya

A paket baru telah diunduh — kemajuan ditunjukkan pada 60%.

Apa artinya

A paket baru telah diunduh — kemajuan ditunjukkan pada 70%.

Apa artinya

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

Apa itu?

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

Apa itu?

Pengunduhan bundle selesai dengan sukses.

Apa itu?

Ponsel mulai mengunduh manifest update.

Apa itu?

Perangkat telah selesai mengunduh manifest pembaruan.

Apa artinya

Perangkat telah memulai mengunduh arsip bundle.

Apa artinya

Perangkat telah selesai mengunduh arsip bundle.

Apa artinya

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

Apa yang harus dilakukan

Perbaiki asset yang hilang atau diblokir, regenerasi manifest, dan unggah kembali bundle.

Apa artinya

File manifest gagal validasi cek checksum.

Apa yang harus dilakukan

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

Apa artinya

File manifest gagal decompress Brotli.

Apa yang harus dilakukan

Verifikasi pengaturan kompresi dan unggah kembali asset yang terpengaruh.

Apa artinya

Paket tidak dapat diunduh.

Apa yang harus dilakukan

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

Apa artinya

Paket diinstal tetapi aplikasi tidak pernah memanggil notifyAppReadyjadi Capgo di-rollback.

Apa yang harus dilakukan

Tunggu sampai aplikasi selesai melakukan bootstrapping. Log native notifyAppReady() Panggil notifyAppReady was not called, roll back current bundle bermukaan ke code.

Apa itu?

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

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 penggunaan eksplisit keyMismatch Judul bagian “decrypt_fail”

decrypt_fail

Apa itu?

Bundle yang diunduh gagal untuk mendekripsi.

Apa yang harus dilakukan?

Pastikan kunci enkripsi dan unggah ulang bundle dengan pasangannya kunci yang sesuai.

Judul bagian “checksum_fail”

Apa itu?

Arsip zip mengandung jalur Windows ilegal.

Apa yang harus dilakukan?

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

Apa itu?

Jalur file di dalam arsip zip tidak konsisten.

Apa yang harus dilakukan?

Perbaiki penghasilan jalur arsip sebelum mengunggah.

Apa itu?

Isi zip mengandung jalur direktori yang tidak valid.

Apakah yang harus dilakukan?

Perbaiki struktur arsip sebelum mengunggah.

Artinya apa?

Perangkat gagal mengekstrak arsip yang diunduh.

Apakah yang harus dilakukan?

Periksa integritas arsip dan kompresi yang didukung.

Artinya apa?

Gagal mengunduh karena perangkat kehabisan memori.

Apakah yang harus dilakukan?

Perkecil ukuran bundle atau coba lagi pada perangkat dengan lebih banyak memori gratis.

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

Apa artinya

Aplikasi masuk ke latar belakang.

Apa artinya

Aplikasi masuk ke depan.

Apa artinya

Kecelakaan JavaScript atau lapisan Capacitor.

Apa yang harus dilakukan.

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

Apa artinya.

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

Apa yang harus dilakukan.

Gunakan Xcode atau Logcat crash logs dan korrelasikan dengan bundle aktif dari metadata.

Apa artinya.

Event Tidak Responsif Aplikasi Android.

Apa yang harus dilakukan.

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

Apa itu

OS membunuh aplikasi karena tekanan memori.

Apa yang harus dilakukan

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

Apa itu

OS membunuh aplikasi karena penggunaan sumber daya yang berlebihan.

Apa yang harus dilakukan

Periksa metadata untuk jenis sumber daya atau alasan platform.

Apa itu?

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 tidak terjebak di WebView. Metadata dapat mencakup pesan, URL sumber, baris, kolom, dan stack.

Apa yang harus dilakukan

Pasang pelaporan kesalahan di layer JS dan native untuk menangkap baris yang gagal secara tepat di produksi.

Apa artinya

Penolakan janji promise yang tidak dihandle di WebView.

Apa yang harus dilakukan

Tangkap gagal asinkron dengan pelaporan kesalahan JS dan native.

Apa artinya

Sumber daya WebView gagal dimuat.

Apa yang harus dilakukan

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

Apa itu?

Kebijakan keamanan konten telah memblokir sumber daya.

Apa yang harus dilakukan?

Penyesuaian kebijakan CSP menggunakan direktif metadata dan detail URI yang diblokir.

Apa itu?

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

Apa yang harus dilakukan?

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

Apa itu?

Proses Renderer Android WebView Keluar.

Apakah yang harus dilakukan?

Periksa signal kegagalan renderer dalam metadata dan log native.

Apa artinya?

Proses Konten WebView iOS Terhenti.

Apakah yang harus dilakukan?

Periksa bundle aktif dan URL halaman dari metadata.

Peristiwa Konteks Perangkat yang membantu menghubungkan perilaku pembaruan dengan OS, versi native, atau perubahan saluran.

Apa itu?

Versi OS perangkat berubah antara periksa.

Apa itu?

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

Apa itu?

Perangkat menjalankan permintaan kanal saat ini.

Apa itu?

Kanal berhasil ditetapkan untuk perangkat.

Apa itu?

Aplikasi dihapus atau data Capgo dihapus.

  • 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 cloud Capgo.

Tampilan Jendela Terminal
npx @capgo/cli@latest app debug

Fitur ini memungkinkan Anda untuk memeriksa semua kejadian 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 bermaksud download_fail
  • notifyAppReady was not called, roll back current bundle bermaksud update_fail

Mencari bundle yang diunduh di perangkat

Bab berjudul “Mencari bundle yang diunduh di perangkat”

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. Pengaturan menu Xcode menampilkan opsi Devices and Simulators

To achieve this:

  • Hubungkan perangkat Anda ke Mac Anda dan pilih Jendela > Perangkat di menu Xcode.
  • Pilih perangkat Anda di panel kiri di bawah bagian Perangkat.
  • Daftar aplikasi yang diinstal oleh pengembang akan ditampilkan untuk perangkat tersebut.
  • Pilih aplikasi yang ingin Anda inspeksi, lalu pilih ikon titik tiga di bagian bawah layar.
  • Di sini Anda dapat melihat sistem file saat ini dengan memilih download snapshotnya.

Panel Xcode Perangkat menampilkan opsi download kontainer.

Pilih Download Kontainer… untuk mendownload dan mengekspor snapshot sistem file sebagai file .xcappdata yang dapat Anda jelajahi.

File xcappdata yang telah didownload dengan menu konteks Tampilkan Isi Paket

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

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

Struktur folder kontainer aplikasi iOS menampilkan folder Dokumen dan Library

Kemudian Anda akan menemukan versi di 2 folder:

library/NoCloud/ionic_built_snapshots perlu setelah aplikasi di-reboot

dan documents/versions context: Halaman/area: Situs web pemasaran Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman trust.astro. Kunci pesan `dan` (And).

untuk reload panas

Android

Bab berjudul “Android”

  • Untuk debug di Android, Anda perlu mengakses perangkat dari Android Studio:
  • Klik Tampilan > 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/ Nama Aplikasi Anda adalah ID aplikasi Anda.

Studio Android Explorer File Device menampilkan direktori data aplikasi

Lalu 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 Plugin oleh Capgo, Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk dalam Ionic Enterprise Plugin Alternatif.