untuk mendapatkan set lengkap opsi target.
untuk mendapatkan set lengkap opsi target. --fail-on-incompatibleuntuk mendapatkan set lengkap opsi target.
Dapat dicopy untuk menginstal
A Capgo pembaruan live mengganti bundel JavaScript aplikasi Anda Bundel JavaScript tetapi tidak dapat mengubah bagian native aplikasi — plugin Cordova __CAPGO_KEEP_0__, dependensi native, dan konfigurasi proyek native yang dikompilasi ke dalam file biner yang diinstal. Ketika bundel baru memerlukan __CAPGO_KEEP_1__ native yang tidak ada di file biner yang diinstal, bundel tersebut 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 Ini halaman menjelaskan bagaimana __CAPGO_KEEP_0__ mendeteksi kompatibilitas native, apa artinya pembaruan tidak kompatibel bagi pengguna Anda, 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 dapat mengirimkan file dari folder pembangunan web yang dihasilkan. Jika perubahan hanya mempengaruhi HTML, CSS, JavaScript, aset, atau paket JavaScript murni yang dibundel ke dalam output tersebut, kirimkannya sebagai update live.
Pakai rilis aplikasi native ketika perubahan memperbarui capacitor.config.ts, pengaturan plugin yang disimpan di Capacitor konfigurasi, plugin native atau dependensi, Capacitor sendiri, atau file proyek iOS/Android. Periksa secara praktis: jika perubahan harus memperbarui proyek native melalui npx cap sync atau npx cap copy context
| Apakah Anda ingin mengirimkan update live atau rilis aplikasi native? | Ship with Capgo OTA? | Perubahan |
|---|---|---|
| Apakah Anda ingin mengirimkan update live dengan __CAPGO_KEEP_0__? | Mengapa | HTML, CSS, kode JavaScript aplikasi, gambar, font, dan aset pembangunan web lainnya |
| Paket JavaScript murni yang berubah dikemas ke dalam output web Anda | Ya | JavaScript yang dihasilkan merupakan bagian dari bundle web. |
capacitor.config.ts perubahan | Tidak | Capacitor konfigurasi dibaca ke dalam aplikasi native pada waktu build. |
| Menambahkan, menghapus, atau mengupgrade Capacitor/Cordova plugin | Tidak | Binary native yang terinstall harus mengandung versi native code yang sesuai. |
| Perubahan file proyek iOS atau Android | Tidak | Pengguna yang sudah ada memerlukan binary baru dari toko. |
Capgo mengirimkan klien pembarui yang spesifik 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 |
Pengecekan kompatibilitas native berlaku tanpa peduli dengan plugin klien — mereka membandingkan ketergantungan native yang direkam terhadap bundle dengan binary yang terinstal.
Setiap aplikasi Capacitor dikirimkan dalam dua lapisan:
A live update swaps only the JavaScript layer. If that new JavaScript calls a native plugin or API that isn’t compiled into the installed binary, the call fails at runtime — which can crash the app or silently break a feature. Put simply: Capgo cannot update native code, so a device running the old native build can’t safely run a bundle that was built against new native code.
When you upload a bundle — or run the check manually — Capgo compares the __CAPGO_KEEP_0__ 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 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 pipeline, bundle releaseType menggabungkan periksaan menjadi satu kata saja:
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 buildJalankan pipelining rilis Anda berdasarkan hal ini: kirimkan pembaruan hidup ketika itu mencetak OTA, dan aktifkan pembangunan asli ketika itu mencetak native.
Pada perangkat yang masih menjalankan versi biner asli yang lebih tua biner asli yang lebih tua, code yang hilang dapat menyebabkan kacau atau fitur yang rusak — bahkan meskipun update yang diunduh dan diterapkan “berhasil.” Ini adalah mengapa update live dapat live dan disampaikan namun masih dapat mengganggu aplikasi bagi pengguna yang sudah ada, dan mengapa Capgo dapat memberi peringatan ketika bundle yang tidak kompatibel disampaikan.
Capgo’s rollback otomatis dapat menangkap kesalahan JavaScript yang dilempar sebelum notifyAppReady() berjalan, tetapi tidak dapat menggantikan pengiriman code asli yang kompatibel — kesalahan yang menyebabkan kacau nanti, atau kacau secara native, dapat melewati.
Ketika sebuah paket membutuhkan code baru asli, bangun dan kirimkan bangun biner baru ke App Store / Play Store (atau bangun ulang dengan Capgo Cloud Build). Setelah pengguna memperbarui biner, dependensi asli paket tersebut berurutan dan live update berjalan dengan benar.
Jika paket tidak kompatibel sudah aktif di sebuah saluran, kembalikan saluran ke bangun yang paling kompatibel terakhir untuk menghentikan pelayanan hingga bangun asli keluar. Lihat Rollbacks.
Dua pengawas komplementer, yang sebenarnya memeriksa paket asli Anda:
Gagal unggah di CI — --fail-on-incompatible
Tambahkan flag ke langkah Anda. Jika paket asli Anda tidak sesuai dengan versi yang hidup saat ini di saluran, unggah bundle upload Jika __CAPGO_KEEP_0__ tidak sesuai dengan __CAPGO_KEEP_1__, unggah terganggu dengan kode keluaran tidak nol dan tidak ada yang dikirim — jadi pipa Anda menghentikan Anda dari memublikan update OTA secara diam-diam yang tidak dapat berlaku sampai pengguna menginstal build asli:
bunx @capgo/cli@latest bundle upload --channel production --fail-on-incompatibleUpload yang kompatibel — dan kasus-kasus di mana periksa tidak dapat dijalankan (saluran baru, atau tidak ada metadata remote) — melewati tanpa perubahan. Di terminal interaktif, ia menawarkan alur Builder native-build Capgo alih-alih; menolak gagal. (Tidak dapat dikombinasikan dengan --ignore-metadata-check.)
Pengiriman melalui versi asli — metadata + --auto-min-update-version
Saat Anda Mengirimkan bangunan asli dan bundle bersamaan, letakkan saluran pada strategi dan unggah dengan metadata . __CAPGO_KEEP_0__ menjalankan periksa kompatibilitas pada setiap unggahan dan, ketika bundle memerlukan native __CAPGO_KEEP_1__ baru, meningkatkan lantai pembaruan sehingga perangkat yang belum menginstal bangunan asli yang sesuai tidak menerima: --auto-min-update-version. Capgo runs the compatibility check on every upload and, when a bundle needs new native code, raises the update floor so devices that haven’t installed the matching native build don’t receive it:
# 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-versionTerkait Bagian berjudul “Terkait” Alur Kerja Native + OTA
untuk mendapatkan set lengkap opsi target.
untuk mendapatkan set lengkap opsi target. --fail-on-incompatibleuntuk mendapatkan set lengkap opsi target.
Auto OTA atau Native
Kabel bundle releaseType masuk ke GitHub Aksi atau GitLab sehingga CI memilih live update vs Capgo Bangun.
Target Versi
context
Jalankan hanya paket yang kompatibel menggunakan saluran, aturan semver, dan strategi metadata.
Rollback
Membalikkan saluran ke bangun yang kompatibel terakhir jika paket yang tidak kompatibel keluar.
Jenis Update
CLI: bundle
__CAPGO_KEEP_0__: paket
Jika Anda menggunakan Kompatibilitas Asli untuk menjaga live updates aman, hubungkannya dengan Target Versi context untuk mengarahkan bundle oleh versi asli, Rollbacks untuk kembali ketika bundle tidak kompatibel dikirimkan, Jenis Update Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ referensi bundle kompatibilitas dan releaseType perintah.