Mengatasi Masalah

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 console, sehingga Anda dapat menghubungkannya secara langsung.

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?

Tidak perlu memperhatikan hal ini pada pengguna nyata. Coba lagi dari jaringan normal dan perangkat nyata, atau tunggu dan periksa lagi nanti.

Apa itu?

Aplikasi Anda dikonfigurasi untuk memblokir permintaan dari IP alamat Google dan Apple datacenter yang diketahui. Perlindungan 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, secara sementara nonaktifkan Blokir permintaan infrastruktur provider In aplikasi Anda, Informasi Tab, kemudian aktifkan lagi setelah tes. Aplikasi baru mengaktifkan pengaturan ini secara default; aplikasi yang sudah ada akan mempertahankan pengaturan sebelumnya yang dinonaktifkan sampai diubah.

Artinya apa

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

Apa yang harus dilakukan

Upgrade rencana Anda di dashboard atau tunggu siklus pembayaran berikutnya.

Artinya apa

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

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 tetapkan defaultChannel dalam capacitor.config.

Pembalasan 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 SemVer tester, kemudian bangun kembali dan instal aplikasi native.

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

Apa 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.

Apa itu?

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.

Apa itu?

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

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

Apa yang harus dilakukan?

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

Apa itu?

Sebuah build produksi bernama /updatestetapi pembaruan produksi diblokir untuk saluran ini.

Apa yang harus dilakukan?

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

Apa itu?

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

Apa yang harus dilakukan.

Perbolehkan pembaruan perangkat nyata jika ini tidak sengaja, atau jaga 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.

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

Aturan kompatibilitas pembaruan otomatis

Judul bagian “Auto-update compatibility rules”

Pengembalian belakang-end ketika aturan semver atau metadata menghalangi bundle target.

Apa itu

Auto-update 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 auto-update saluran untuk memungkinkan peluncuran yang diinginkan.

Apa itu

Saluran memiliki bundle yang lebih tua dari basis perangkat dan menghalangi pengiriman update di bawah versi asli.

Apa yang harus dilakukan

Publikasikan bundle di atau di atas basis native, atau nonaktifkan perlindungan di bawah native 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

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

Apa itu

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

context

Page/area: Halaman produk produk live updates. Role: Label UI singkat atau item navigasi. Message key `live_update_dynamic_label_to` (Live Update Dynamic Label To). Masalah Pembaruan Umum.

Apa itu

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

context: Halaman/area: Halaman produk pembaruan hidup. Peran: Label UI singkat atau item navigasi. Kunci pesan `live_update_dynamic_label_to` (Label Dinamis Pembaruan Hidup Ke).

Apa yang harus dilakukan

Bagian berjudul “disableAutoUpdateToPatch”

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

Apa yang harus dilakukan

Sinkronkan ritme rilis dengan kebijakan saluran, atau biarkan lonjakan patch untuk trek ini.

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

Apa artinya

Perangkat mencoba mengasosiasikan diri sendiri dengan saluran privat yang tidak memungkinkan pengasosiasian perangkat sendiri (allow_device_self_set adalah salah) dan saluran bukanlah publik.

Apa yang harus dilakukan

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

Apa itu?

Salah satu saluran yang digunakan disable_auto_update: "version_number" tetapi paket 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 defaultChannel di dalam proses pembangunan.

Penolakan Backend ketika Capgo tidak dapat menyediakan atau memecahkan paket.

Apa Artinya

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

Apa yang Harus Dilakukan

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

Apa Artinya

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

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 pembaruan 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 mengirimkan ID khusus, atau aktifkan ID khusus hanya ketika workflow Anda memerlukannya.

Apa itu?

server.url Capacitor telah disetel di konfigurasi, sehingga WebView memuat URL remote daripada file bundle lokal. Capgo pembaruan hidup memerlukan file lokal dan server.url disarankan tidak digunakan dalam produksi.

Apa yang harus dilakukan?

Hapus atau kosongkan server.url untuk pembangunan produksi dan menjaga 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?

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

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

Bundle gagal diaktifkan di perangkat.

Periksa log native dengan

dan pastikan integritas bundle, jalur, dan

__CAPGO_KEEP_0__ mengirimkan informasi download untuk versi baru ke perangkat.

Apa yang harus dilakukan 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 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?

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

Apa itu?

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

Apa itu?

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

Apa itu?

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

Apa itu?

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

Apa itu?

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

Apa itu?

Proses pengunduhan bundle telah selesai dengan sukses.

Apa itu?

Perangkat telah memulai 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 re-upload bundle.

Apa artinya

File manifest gagal validasi ceksum.

Apa yang harus dilakukan

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

Apa artinya

File manifest gagal decompress Brotli.

Apa yang harus dilakukan

Verifikasi pengaturan kompresi dan re-upload asset yang terpengaruh.

Apa itu?

Bundle gagal diunduh.

Apa yang harus dilakukan?

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

Apa itu?

Bundle diinstal tetapi aplikasi tidak pernah memanggil notifyAppReady, sehingga Capgo berbalik arah.

Apa yang harus dilakukan?

Panggil notifyAppReady() context:HTML teks fragmen dari string Capgo UI yang lebih panjang (kunci induk `appflow_migration_step2`). Halaman/area: Perbandingan/migrasi Appflow / iklan pemasaran. Peran: Kalimat website. Dilihat di: halaman ionic-appflow.astro. Simpan Capgo produk/merek dan istilah pengembang secara tepat. Kunci pesan `appflow_migration_step2` (Appflow Migration Step2). 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 saat ini. Jika menggunakan enkripsi, pastikan kunci publik aplikasi sesuai dengan kunci unggah, atau upgrade ke plugin 8.3.0+ untuk penggunaan eksplisit keyMismatch Bagian berjudul “decrypt_fail”

decrypt_fail

Apa itu?

Bundle yang diunduh gagal mendekripsi.

Apa yang harus dilakukan?

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

Bagian berjudul “checksum_fail”

Apa itu?

Zip tersebut berisi jalur Windows ilegal.

Apa yang harus dilakukan?

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

Apa itu?

Jalur file di dalam 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.

Apakah artinya?

Perangkat gagal mengekstrak arsip yang diunduh.

Apakah yang harus dilakukan?

Periksa integritas arsip dan kompresi yang didukung.

Apakah artinya?

Unduhan gagal karena perangkat kehabisan memori.

Apakah yang harus dilakukan?

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

Kesehatan aplikasi dan event WebView

Judul Bagian: Kesehatan Aplikasi dan Event WebView

Pengaturan perangkat untuk crash, memori, dan diagnostik WebView. Selalu inspeksi metadata JSON di dashboard.

Apa itu?

Aplikasi masuk ke latar belakang.

app_moved_to_foreground

Judul Bagian: aplikasi_ditampilkan

Apa itu?

Aplikasi masuk ke depan.

Apa itu?

Kecelakaan JavaScript atau lapisan Capacitor.

Apa yang harus dilakukan

Periksa metadata dan log native. Pasang 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?

Sistem operasi membunuh aplikasi setelah tekanan memori.

Apa yang harus dilakukan?

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

Apa itu?

Sistem operasi 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?

Pemberitahuan memori iOS.

Apa yang harus dilakukan?

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

Apa itu?

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

Apa yang harus dilakukan

Instal laporan kesalahan di layer JS dan native untuk menangkap baris gagal yang tepat di produksi.

Apa artinya

Penolakan janji promise di WebView.

Apa yang harus dilakukan

Temukan gagal asinkron dengan laporan kesalahan JS dan native.

Apa artinya

Sumber daya WebView gagal dimuat.

Apa yang harus dilakukan

Gunakan URL metadata dan detail status untuk memperbaiki asset 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?

Session WebView sebelumnya tidak ditutup dengan bersih, yang dapat menunjukkan loop kecelakaan setelah pembaruan.

Apa yang harus dilakukan?

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

Apa itu?

Proses Renderer Android WebView Keluar.

Apakah yang harus dilakukan?

Periksa signal kegagalan renderer di metadata dan log native.

Apa artinya?

Proses Konten WebView iOS Keluar.

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 meminta saluran saat ini.

Apa itu?

Saluran berhasil ditetapkan untuk perangkat.

Apa itu?

Aplikasi telah dihapus atau data Capgo telah 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.

Jendela Terminal
npx @capgo/cli@latest app debug

Ini akan 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

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 and Simulators

To capai hal ini:

  • Hubungkan perangkat Anda ke Mac Anda dan pilih Jendela > Perangkat di menu bar Xcode.
  • Pilih perangkat Anda di panel kiri di bawah bagian Perangkat.
  • Ini akan menampilkan daftar aplikasi pengembang yang diinstal untuk perangkat tersebut.
  • Pilih aplikasi yang ingin Anda inspeksi dan kemudian 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 aplikasi.

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

File xcappdata yang 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

Maka Anda akan menemukan versi di 2 folder:

library/NoCloud/ionic_built_snapshots diperlukan setelah aplikasi di-reboot

dan documents/versions untuk reload panas

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

  • Klik View > Tool Windows > Device File Explorer atau klik tombol Device File Explorer di bar tool window untuk membuka Device File Explorer.
  • Pilih perangkat dari daftar dropdown.
  • Buka path data/data/NAMA_APLIKASI/ di mana Nama Aplikasi Anda adalah ID aplikasi Anda.

Penjelajah File Perangkat Android Studio 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.