Langsung ke konten

Masalah Pembaruan Umum

GitHub

Ketika cek update gagal, Capgo biasanya mengembalikan error code dan message dalam /updates respons. Halaman ini menjelaskan gagal umum dan perbaikan tercepat.

  • no_new_version_available adalah keadaan normal, bukan gagal.
  • Banyak laporan “update ditemukan tapi tidak diterapkan” adalah penolakan kebijakan/konfigurasi daripada keterlambatan cache, terutama ketika respons mencakup jawaban eksplisit error code.
  • Gunakan npx @capgo/cli@latest app debug sambil mengulangi masalah untuk melihat detail permintaan/respon.

Penyebab

Aplikasi memiliki Mencegah permintaan infrastruktur penyedia dihubungkan dan permintaan asalnya berasal dari IP range datacenter Google atau Apple yang diketahui. Capgo menghalangi permintaan ini di /updates, /stats, dan /channel_self untuk mencegah lalu lintas asal penyedia dari dianggap sebagai lalu lintas perangkat.

Perbaiki

  • Reproduksi pembaruan dari perangkat fisik di jaringan pengguna normal.
  • Jangan menggunakan probe berbasis awan atau pengguna provider datacenter untuk pembaruan, statistik, atau pengecekan channel-self sementara perlindungan ini diaktifkan.
  • Jika itu adalah lalu lintas sengaja, buka tab Informasi dan matikan Blokir permintaan infrastruktur penyedia. Aktifkan lagi ketika tes selesai.

Aplikasi baru memiliki perlindungan ini diaktifkan secara default. Aplikasi yang dibuat sebelum pengaturan diperkenalkan tetap dinonaktifkan sampai Anda mengaktifkannya.

Detil respons

  • /updates menjaga kontrak respons pembaruan dan mengembalikan HTTP 200. Tubuhnya termasuk error, message, kind: "blocked"atau provider ("google" dan "apple").
  • /stats atau /channel_self kembali HTTP 429 dengan kesalahan yang sama code. Dianggap sebagai kebijakan pemblokiran sengaja, bukan kondisi ulang sementara.

Penyebab

Saluran Anda memblokir pembaruan besar (disable_auto_update = major) dan versi bundle target lebih besar dari versi dasar perangkat.

Gejala umum

version: 1.0.8 dengan old: 0.0.0 berarti perangkat melaporkan dasar 0.0.0Jadi, perbaikan besar ditolak.

Bagaimana cara memahami hal ini

Backend membandingkan versi besar menggunakan basis perangkat old dan target version.

  • Jika target adalah 1.0.1, versi besar basis harus 1 (contoh 1.0.0).
  • Jika target adalah 10.0.1, versi besar basis harus 10 (contoh 10.0.0).

Pilihan perbaikan A (direkomendasikan): sesuaikan versi besar basis perangkat

Set plugins.CapacitorUpdater.version di capacitor.config.* jadi itu MAJOR cocok dengan bundle MAJOR yang ingin Anda kirimkan (misalnya 1.0.0 untuk 1.0.1, 10.0.0 untuk 10.0.1).

Lalu aplikasikan konfigurasi ini ke aplikasi yang sudah terinstal:

  1. Jalankan npx cap sync.
  2. Rebuild dan reinstall aplikasi native.

Pilihan B: lembagakan kebijakan saluran

Izinkan pembaruan otomatis lintas-MAJOR di pengaturan saluran (hanya jika strategi perluasan itu sengaja).

Dokumen terkait:

disable_auto_update_to_minor / disable_auto_update_to_patch

Bagian berjudul “disable_auto_update_to_minor / disable_auto_update_to_patch”

Penyebab

Kebijakan saluran lebih ketat (minor atau patch) daripada perbaruan yang ditawarkan.

  • minor menghalangi ketika bundle target memiliki versi utama atau minor yang berbeda dengan dasar native perangkat (version_build). Contoh: 1.2.3 -> 1.3.0 dihalangi.
  • patch menghalangi perubahan nomor versi utama, minor, atau patch dari version_buildHanya perubahan sufiks yang diizinkan sementara MAJOR.MINOR.PATCH tetap identik, seperti 1.0.0-beta.1 -> 1.0.0-beta.2 atau 1.0.0+build.1 -> 1.0.0+build.2.

Perbaiki

  • Upload sebuah bundle yang kompatibel dengan kebijakan saat ini, atau
  • ubah kebijakan saluran di dashboard/CLI.

Dokumen terkait:

Penyebab

Saluran menggunakan target berdasarkan metadata (version_number) dan dasar perangkat di bawah yang diperlukan min_update_version.

Perbaiki

  • Sinkronkan garis dasar perangkat (CapacitorUpdater.version) dengan versi aplikasi native yang terpasang, atau
  • atur ulang min_update_version / strategi saluran.

Referensi dokumen terkait:

Penyebab

Saluran mencegah penurunan di bawah garis dasar native.

Pembetulan

  • Unggah versi bundle yang sama atau lebih besar dari garis dasar native, atau
  • nonaktifkan perlindungan penurunan di bawah native untuk saluran tersebut.

Dokumen terkait:

Penyebab

Saluran yang dipilih/default tidak memungkinkan pengasasan perangkat sendiri.

Pemecahan masalah

  • Gunakan saluran yang berbeda dengan pengasasan perangkat sendiri diaktifkan, atau
  • buat saluran publik / diaktifkan pengasasan perangkat sendiri.

Dokumen terkait:

Penyebab

Versi dasar perangkat hilang (unknown) atau tidak valid semver.

Perbaiki

  • Tetapkan plugins.CapacitorUpdater.version ke valid semver seperti 1.2.3.
  • Sinkronkan dan bangun kembali aplikasi native.

Dokumen terkait:

Penyebab

Versi plugin Updater terlalu tua untuk persyaratan backend saat ini.

Pemecahan masalah

  • Upgrade @capgo/capacitor-updater.
  • Jalankan npx cap sync.
  • Rebuild dan reinstall aplikasi native.

Penyebab

Saluran memiliki pembaruan diaktifkan untuk platform tersebut.

Pemecahan masalah

  • Aktifkan toggle platform pada saluran.

disable_prod_build / disable_dev_build / disable_device / disable_emulator

Mengaktifkan / Menonaktifkan Pembangunan Prod / Dev / Device / Emulator

Penyebab

Saluran melarang jenis pembangunan saat ini atau target waktu eksekusi.

Solusi

  • Pastikan opsi saluran (allow_prod, allow_dev, allow_device, allow_emulator) sesuai dengan target pengujian Anda.

Penyebab

Kunci enkripsi aplikasi dan kunci perangkat berbeda.

Solusi

  • Pakai kunci enkripsi/publik yang sama di konfigurasi aplikasi dan alur kerja enkripsi bundle.

Penyebab

Tidak ada saluran yang valid untuk perangkat.

Perbaiki

  • Atur saluran default cloud, atau
  • dalam pembangunan uji, atau defaultChannel tugaskan penggeser saluran untuk perangkat.
  • Dokumen terkait:

Saluran

on_premise_app

Penyebab

Backend mengembalikan HTTP 429 dengan

Related docs: on_premise_app. Hal ini terjadi dalam tiga situasi:

  1. ID Aplikasi tidak ada di Capgo — pesan yang dikirimkan oleh perangkat tidak terdaftar, sehingga backend tidak memiliki catatan tentangnya. app_id Aplikasi ditandai sebagai on-premise
  2. — aplikasi ada tetapi dikonfigurasi untuk pembaruan self-hosted, sehingga endpoint cloud __CAPGO_KEEP_0__ menolak untuk menyediakannya. — the app exists but is configured for self-hosted updates, so the Capgo cloud endpoint refuses to serve it.
  3. — aplikasi organisasi tidak lagi memiliki langganan aktif. Kesalahan umum

Tipe salah dalam

(di plugins.CapacitorUpdater.appId ) atau kesalahan dengan ID aplikasi yang terdaftar di __CAPGO_KEEP_0__ dashboard. Backend tidak dapat membedakan “aplikasi tidak dikenal” dari “aplikasi on-premise”, sehingga kembali dengan kesalahan yang sama __CAPGO_KEEP_1__. capacitor.config.ts) or a mismatch with the app ID registered in the Capgo dashboard. The backend cannot distinguish “unknown app” from “on-premise app”, so it returns the same error code.

Perbaiki

  • Pastikan app_id sama persis apa yang ditampilkan di Capgo dashboard (case-sensitive).
  • Jika aplikasi belum terdaftar, jalankan npx @capgo/cli@latest app add.
  • Jika aplikasi sengaja di-host sendiri, atur plugins.CapacitorUpdater.updateUrl ke endpoint update Anda sendiri yang di-host, bukan URL Cloudflare Capgo.
  • Jika rencana organisasi telah kedaluwarsa, lanjutkan atau tingkatkan rencana.
  1. Konfirmasi ID aplikasi dan saluran yang benar untuk build.
  2. Konfirmasi CapacitorUpdater.version sama dengan versi aplikasi native yang terpasang.
  3. Konfirmasi kebijakan saluran (disable_auto_update) sesuai dengan peluncuran yang diharapkan.
  4. Konfirmasi target platform/bangun memungkinkan perangkat ini.
  5. Jalankan npx @capgo/cli@latest app debug dan baca kesalahan backend code.

Jika Anda menggunakan Masalah Pembaruan Umum untuk merencanakan pekerjaan plugin asli, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan asli dalam Menggunakan @capgo/capacitor-updater, Capgo Direktori Plugin untuk alur kerja produk dalam Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi dalam Capacitor Plugin oleh Capgo, Menambahkan atau Mengupdate Plugin untuk detail implementasi dalam Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Perusahaan Ionic untuk alur kerja produk dalam Alternatif Plugin Perusahaan Ionic.