Lompat ke konten

Mengembangkan

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 legacy yang terdaftar dalam tanda kurung.

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

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

Apa itu

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

Apa artinya

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

Apa yang harus dilakukan

Upgrade rencana Anda di dashboard atau tunggu siklus pembayaran berikutnya.

Apa artinya

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

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

Pengakuan backend disebabkan oleh metadata versi native yang tidak valid.

Apa itu berarti

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

Apa yang harus dilakukan

Set plugins.CapacitorUpdater.version ke versi semver yang valid, pastikan di Tester SemVer, kemudian bangun dan instal ulang aplikasi native.

Penolakan 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 pemblokiran itu 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

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

Apa itu artinya

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

Apa yang harus dilakukan

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

Apa itu artinya

Sebuah perangkat asli seperti ponsel atau tablet diblokir karena saluran ini memblokir perangkat asli.

Apa yang harus dilakukan

Aktifkan pembaruan perangkat nyata jika ini adalah kejadian tidak sengaja, atau pertahankan 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 pertahankan saluran ini sebagai emulator-diblokir dan gunakan saluran lain untuk validasi emulator.

Aturan kompatibilitas pembaruan otomatis

Bagian berjudul “Auto-update compatibility rules”

Penolakan backend ketika aturan semver atau metadata memblokir paket sasaran.

Apa artinya

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

Apa yang harus dilakukan

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

Apa artinya

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

Apa yang harus dilakukan

Publikasikan paket di atau di atas basis asli, atau nonaktifkan perlindungan di bawah asli di saluran.

Apa artinya

Saluran ini memerlukan min_update_version, tetapi versi asli perangkat di bawah ambang batas tersebut.

Apa yang harus dilakukan

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

Apa itu

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

Apa yang harus dilakukan

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

Apa itu

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

Apa yang harus dilakukan

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

Apa itu

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

Apa yang harus dilakukan

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

Konfigurasi Saluran

Saluran setup

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

Apa itu

Perangkat mencoba mengasosiasikan diri sendiri dengan saluran privat yang tidak memungkinkan pengasosiasi perangkat sendiri (allow_device_self_set Apa yang harus dilakukan

Aktifkan

pada saluran atau ubah perangkat ke saluran publik atau yang diizinkan. allow_device_self_set Konfigurasi Saluran Tidak Tepat

Apa itu

Saluran ini menggunakan disable_auto_update: "version_number" tetapi bundel min_update_version sama dengan null, jadi Capgo tidak bisa 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

Tetapkan saluran default di dashboard atau konfigurasi defaultChannel di dalam build.

Penolakan backend ketika Capgo tidak dapat menyediakan atau memecahkan paket.

Apa itu artinya

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

Apa yang harus dilakukan

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

Apa itu artinya

Paket yang ditugaskan ke saluran tidak memiliki konten yang dapat diunduh: tidak ada external_url, tidak ada r2_pathtidak versi bawaan, dan tidak ada entri manifest.

Apa yang harus dilakukan

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

Apa artinya

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

Apa yang harus dilakukan

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

Pengakuan backend yang disebabkan oleh pengaturan 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 pengiriman ID khusus, atau aktifkan ID khusus hanya ketika alur kerja Anda memerlukannya.

Apa itu?

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

Apa yang harus dilakukan?

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

Apa itu?

Plugin pembarui berupa 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 bundle.

Bagian berjudul “Update lifecycle”

Bagian berjudul “ping”

Apa itu?

Apa itu

Capgo mengirim informasi download untuk versi baru ke perangkat.

Apa itu

Sebuah paket diaktifkan pada perangkat.

Apa itu

Sebuah paket gagal diaktifkan pada perangkat.

Apa yang harus dilakukan

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

Apa itu

Perangkat direset 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 pembaruan.

Apa itu

Perangkat telah selesai mengunduh manifest pembaruan.

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

Apa yang harus dilakukan?

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

Apa itu?

File manifest gagal memvalidasi checksum.

Apa yang harus dilakukan?

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

Apa itu?

File manifest gagal melepas kompresi Brotli.

Apa yang harus dilakukan?

Verifikasi pengaturan kompresi dan re-upload asset yang terpengaruh.

Apa itu

Bundle gagal mendownload.

Apa yang harus dilakukan

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

Apa itu

Bundle terpasang tetapi aplikasi tidak pernah memanggilnya, sehingga __CAPGO_KEEP_0__ diroll back. notifyAppReady, so Capgo rolled back.

Panggil

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

Apa itu?

Bundle yang diunduh gagal memvalidasi cek checksum. Penyebab umum: kesalahan CRC32 vs SHA256 dari unggahan lama CLI, 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 dekripsi eksplisit. keyMismatch Gagalnya

Apa itu?

Bundle yang diunduh gagal mendekripsi.

Apa yang harus dilakukan?

Verifikasi kunci enkripsi dan unggah ulang bundle dengan pasangannya.

Apa itu

Zip tersebut 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 zip bukanlah jalur kanonik.

Apa yang harus dilakukan

Perbaiki penghasilan jalur arsip sebelum mengunggah.

Apa itu

Zip tersebut mengandung jalur direktori yang tidak valid.

Apa yang harus dilakukan

Perbaiki struktur arsip sebelum mengunggah.

Apa itu

Perangkat gagal melepas arsip yang diunduh.

Apa yang harus dilakukan

Verifikasi integritas arsip dan kompresi yang didukung.

Apa itu

Unduhan gagal karena perangkat kehabisan memori.

Apa yang harus dilakukan

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

Diagnosis crash, memory, dan WebView di perangkat. Selalu inspect metadata JSON di dashboard.

Apa itu?

Aplikasi masuk ke latar belakang.

Apa itu?

Aplikasi masuk ke depan.

Apa itu?

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

Apa yang harus dilakukan

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

Apa itu artinya

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

Apa yang harus dilakukan

Gunakan log kegagalan Xcode atau Logcat dan korrelasikan dengan bundle aktif dari metadata.

Apa itu artinya

Event Tidak Membalas 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 tanda 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 gagal dan pesan kesalahan.

Apa itu berarti

Pemberitahuan memori iOS.

Apa yang harus dilakukan

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

Apa itu berarti

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

Apa yang harus dilakukan

Instal error reporting di layer JS dan native untuk menangkap baris yang gagal secara tepat di produksi.

Apa itu

Penolakan janji yang tidak dihandle di WebView.

Apa yang harus dilakukan

Tangkap gagal asinkron dengan error reporting 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 telah memblokir sumber daya.

Apa yang harus dilakukan?

Atur 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 kegagalan dan kesalahan WebView sebelum dan setelah restart.

Apa itu?

Proses render Android WebView telah keluar.

Apa yang harus dilakukan

Periksa sinyal kegagalan renderer di metadata dan log-log native.

Apa artinya

Proses konten WebView iOS dihentikan.

Apa yang harus dilakukan

Periksa bundle aktif dan URL halaman dari metadata.

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

Apa artinya

Versi OS perangkat berubah antara periksa.

Apa itu?

Versi aplikasi native 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 dihapus atau data Capgo dibersihkan.

  • 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 event yang terjadi di aplikasi dan menemukan solusi jika update tidak terjadi.

untuk menemukan log Anda di Xcode

untuk menemukan log Anda di Android Studio

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

Untuk Membuat Debug di iOS, Anda Perlu Membuat Dump Aplikasi di Komputer, 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 Perangkat dan Simulator

Untuk mencapai hal ini:

  • Hubungkan perangkat Anda ke Mac Anda dan pilih Window > 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-titik 3 di bagian bawah layar.
  • Di sini Anda dapat melihat sistem file saat ini dengan memilih download snapshotnya.

Panel Perangkat Xcode menampilkan opsi download kontainer.

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

File xcappdata yang 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 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 setelah aplikasi di-reboot, itu diperlukan

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 barikade jendela alat untuk membuka Device File Explorer.
  • Pilih perangkat dari daftar dropdown.
  • Buka path data/data/NAMA_APLIKASI/ di mana NAMA_APLIKASI adalah ID aplikasi Anda.

Studio Android Explorer File Device menampilkan direktori data aplikasi

Lalu Cari folder untuk melihat semua versi versions Tahu kamu?

Bagaimana Mengulas Log Crash Aplikasi Anda

Lanjutkan dari Debugging

Mengerti log crash produksi ios

Bagaimana Mengulas Log Crash Aplikasi Anda

Lanjutkan dari Debugging Debugging untuk merencanakan pekerjaan plugin native, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan native di Menggunakan @capgo/capacitor-updater, Direktori Plugin Capgo untuk alur kerja produk di 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.