Auto OTA atau Native
Wire bundle releaseType ke dalam GitHub Aksi atau GitLab sehingga CI memilih update hidup vs Capgo Build.
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Perbarui Capgo live update menggantikan bundel JavaScript aplikasi Anda. Pasang, sinkronkan, dan ikuti panduan sumber lengkap dari satu prompt yang dapat dicopy. secara instan, tetapi tidak dapat mengubah bagian asli dari aplikasi — plugin Cordova __CAPGO_KEEP_0__, dependensi native, dan konfigurasi proyek native yang dikompilasi ke dalam file biner yang diinstal. Ketika sebuah bundle baru memerlukan __CAPGO_KEEP_1__ native yang tidak dimiliki oleh file biner yang diinstal, maka bundle tersebut adalah tidak kompatibel dengan native part of your app — the Capacitor/Cordova plugins, native dependencies, and native project configuration that are compiled into the installed binary. When a new bundle expects native code that the installed binary doesn’t have, the bundle is Halaman ini menjelaskan bagaimana __CAPGO_KEEP_0__ mendeteksi kompatibilitas native, apa artinya update yang tidak kompatibel bagi pengguna, dan bagaimana mengirimkan perubahan native dengan aman.: Capgo can still deliver it, but it may crash or misbehave on devices that are still running the older native build.
This page explains how Capgo detects native compatibility, what an incompatible update means for your users, and how to ship native changes safely.
Capgo can send files from your generated web build folder. If the change only affects HTML, CSS, JavaScript, assets, or pure-JavaScript packages bundled into that output, ship it as a live update.
Gunakan rilis aplikasi native ketika perubahan memperbarui capacitor.config.tsKonfigurasi plugin disimpan di Capacitor konfigurasi, plugin native atau dependensi, Capacitor sendiri, atau file proyek iOS/Android. npx cap sync Cek yang praktis: jika perubahan harus memperbarui proyek native melalui npx cap copy atau
| sebelum perangkat yang terinstal dapat menggunakannya, tundukkan sebagai native. | Ship with Capgo OTA? | Kirim dengan __CAPGO_KEEP_0__ OTA? |
|---|---|---|
| Mengapa | HTML, CSS, JavaScript aplikasi, gambar, font, dan aset pembangunan web lainnya | Ya |
| Mereka dimuat dari bundle web pada saat runtime. | Perubahan paket JavaScript murni-bundel ke dalam output web Anda | JavaScript yang dihasilkan adalah bagian dari bundle web. |
capacitor.config.ts perubahan | Tidak | Konfigurasi Capacitor dibaca ke dalam aplikasi native pada saat build. |
| Mengambah, menghapus, atau mengupgrade Capacitor/Cordova plugin | Tidak | Aplikasi biner native yang diinstal harus berisi code yang sesuai. |
| Perubahan file proyek iOS atau Android | Tidak | Pengguna yang sudah ada memerlukan aplikasi biner baru dari toko. |
Capgo mengirimkan klien pembaruan dedikasi untuk setiap runtime hybrid:
| Plugin | Gunakan ketika |
|---|---|
@capgo/capacitor-updater | Capacitor aplikasi iOS/Android |
@capgo/cordova-updater | Aplikasi iOS 7+ / Android 13+ Cordova |
@capgo/electron-updater | Aplikasi desktop Electron |
Periksa kompatibilitas native berlaku tanpa peduli plugin klien — mereka membandingkan ketergantungan native yang direkam terhadap bundel dengan binary yang terinstal.
Setiap aplikasi Capacitor dikirim dalam dua lapisan:
Perbaruan hidup hanya mengganti lapisan JavaScript. Jika JavaScript baru tersebut memanggil plugin native atau API yang tidak dikompilasi ke dalam biner yang terinstal, panggilan tersebut gagal pada waktu runtime — yang dapat menyebabkan aplikasi crash atau menghentikan fitur secara diam-diam. Dengan kata sederhana: Capgo tidak dapat memperbarui code native, sehingga perangkat yang menjalankan versi native lama tidak dapat menjalankan bundle yang dibangun atas code native baru.
Saat Anda mengunggah bundle — atau menjalankan cek secara manual — Capgo membandingkan paket native in your local project (your Capacitor/Cordova plugins and their versions) against the native packages recorded for the bundle saat ini berada di saluran:
bunx @capgo/cli@latest bundle compatibility com.example.app --channel productionCLI mencetak tabel dari setiap paket native dengan versi lokal, versi yang hidup di saluran, dan status:
Package Local Remote Status@capacitor/core 6.1.2 6.1.2 ✅@capacitor/share 6.0.0 6.0.0 ✅@capacitor/camera 6.1.0 — ❌ not in the live bundleUntuk pipa-pipa, bundle releaseType menggabungkan periksa menjadi satu kata:
bunx @capgo/cli@latest bundle releaseType com.example.app --channel production# → OTA safe to ship as a live update# → native needs a new app-store buildJadikan pipa rilis Anda bergantung pada ini: kirimkan pembaruan hidup ketika mencetak OTA, dan trigger build asli ketika mencetak native.
Pada perangkat yang masih menjalankan biner asli yang lebih tua, keterlambatan native __CAPGO_KEEP_0__ dapat menyebabkan kacau atau fitur rusak — bahkan meskipun update yang diunduh dan diterapkan “berhasil.” Ini adalah mengapa update live dapat hidup dan disampaikan namun masih dapat mengganggu aplikasi bagi pengguna yang sudah ada, dan mengapa __CAPGO_KEEP_1__ dapat memberi peringatan ketika paket yang tidak kompatibel hidup., the missing native code can cause crashes or broken features — even though the update downloaded and applied “successfully.” This is why a live update can be live and delivered yet still break the app for existing users, and why Capgo can warn you when an incompatible bundle goes live.
Capgo’s dapat menangkap kesalahan JavaScript yang dilempar sebelum berjalan, tetapi tidak dapat menggantikan pengiriman native __CAPGO_KEEP_0__ yang kompatibel — kesalahan yang menyebabkan kacau kemudian, atau kacau secara native, dapat melewati. notifyAppReady() runs, but it isn’t a substitute for shipping compatible native code — a mismatch that crashes later, or crashes natively, can slip past it.
When a bundle needs new native code, build and submit a new binary to the App Store / Play Store (or rebuild with Capgo Cloud Build). Once users update the binary, the bundle’s native dependencies line up and the live update runs correctly.
Mencegah pengiriman yang tidak kompatibel Section titled “Mencegah pengiriman yang tidak kompatibel”.
Tambahkan flag ke
Jika paket native bundel tidak sesuai dengan versi yang sedang berjalan di saluran, maka pengunggahan --fail-on-incompatible
mengalami kegagalan dengan kode keluar yang tidak nol dan tidak ada yang dikirimkan — sehingga pipa Anda menghentikan Anda dari menyebarkan pembaruan OTA secara diam-diam yang tidak dapat berlaku hingga pengguna menginstal versi native: bundle upload Jika ada paket yang tidak kompatibel sudah aktif di saluran, kembalikan saluran ke versi terakhir yang kompatibel untuk menghentikan penyediaannya hingga versi native keluar. Lihat Rollbacks Mencegah pengiriman yang tidak kompatibel
bunx @capgo/cli@latest bundle upload --channel production --fail-on-incompatibleUpload yang kompatibel — dan kasus di mana periksa tidak dapat dijalankan (saluran baru, atau metadata remote tidak ada) — melewati tanpa perubahan. Di terminal interaktif, ia menawarkan aliran pembangunan native Capgo Builder; menolak gagal. (Tidak dapat dikombinasikan dengan --ignore-metadata-check.)
Pengiriman pintu oleh versi native — metadata + --auto-min-update-version
Ketika Anda melakukan mengirimkan pembangunan native dan bundel bersama, letakkan saluran pada metadata strategi dan unggah dengan --auto-min-update-version. Capgo menjalankan periksa kompatibilitas pada setiap unggah dan, ketika bundel memerlukan native code baru, meningkatkan lantai update sehingga perangkat yang belum menginstal pembangunan native yang sesuai tidak menerima:
# one-time: switch the channel to the metadata strategybunx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata
# from then on, Capgo sets the floor automatically on every uploadbunx @capgo/cli@latest bundle upload --channel production --auto-min-update-versionVersi Targeting untuk set lengkap opsi target. Bab yang terkait berjudul “Related”
Auto OTA atau Native
Wire bundle releaseType ke dalam GitHub Aksi atau GitLab sehingga CI memilih update hidup vs Capgo Build.
Versi Targeting
Sampaikan hanya paket yang kompatibel menggunakan saluran, aturan semver, dan strategi metadata.
Rollbacks
Kembalikan saluran ke versi terakhir yang kompatibel jika paket tidak kompatibel yang berjalan.
Jenis Update
Bagaimana cara aplikasi waktu, kondisi delay, dan penghalang versi bekerja bersama.
CLI: paket
Referensi untuk kompatibilitas paket, jenis rilis, dan opsi unggah.
Jika Anda menggunakan Kompatibilitas Asli untuk menjaga pembaruan hidup aman, hubungkannya dengan Target Versi untuk mengarahkan bundle oleh versi native, Rollbacks untuk kembali ketika bundle tidak kompatibel dikirim, Jenis Pembaruan untuk memahami versi saluran penghalang, dan Capgo CLI referensi bundle kompatibilitas untuk perintah kompatibilitas dan releaseType.