Sampaikan hanya bundle yang kompatibel menggunakan saluran, aturan semver, dan strategi metadata.
Rollbacks
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pembaruan Hidup Capgo mengganti bundel aplikasi Anda secara instan, tetapi tidak dapat mengubah bagian asli aplikasi Anda — plugin Cordova Capgo, dependensi asli, dan konfigurasi proyek asli yang dikompilasi ke dalam file biner yang diinstal. Ketika bundel baru memerlukan __CAPGO_KEEP_1__ asli yang tidak ada di file biner yang diinstal, bundel tersebut adalah tidak kompatibel dengan asli. : __CAPGO_KEEP_0__ masih dapat mengirimkannya, tetapi mungkin mengalami kegagalan atau perilaku tidak terduga pada perangkat yang masih menjalankan versi asli yang lebih lama. Sync Source guide 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 Ready to paste: Capgo can still deliver it, but it may crash or misbehave on devices that are still running the older native build.
Halaman ini menjelaskan bagaimana Capgo mendeteksi kompatibilitas native, apa artinya update yang tidak kompatibel bagi pengguna Anda, dan bagaimana mengirimkan perubahan native dengan aman.
Setiap aplikasi Capacitor dikirim 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.
Bab berjudul “Bagaimana Capgo mendeteksi konsistensi”. Saat Anda mengunggah bundle — atau menjalankan cek secara manual — __CAPGO_KEEP_0__ membandingkan in your local project (your Capacitor/Cordova plugins and their versions) against the native packages recorded for the bundle dalam proyek lokal Anda (plugin Cordova Anda dan versi mereka) terhadap plugin native yang direkam untuk bundle:
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, bundle releaseType menggabungkan periksa ke dalam kata tunggal:
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 buildTutup pipa rilis Anda dengan ini: kirimkan pembaruan hidup ketika mencetak OTAdan trigger build asli ketika mencetak native.
, komponen native __CAPGO_KEEP_0__ yang hilang dapat menyebabkan kacau atau fitur rusak — meskipun update yang diunduh dan diterapkan “berhasil.” Ini adalah mengapa update hidup dapat hidup dan dikirimkan namun masih dapat menghancurkan aplikasi untuk pengguna yang ada, dan mengapa __CAPGO_KEEP_1__ dapat memberi peringatan Anda ketika bundle tidak kompatibel keluar. Mengapa Inkompatibilitas Dapat Menghancurkan Aplikasi Anda, 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 rollback otomatis dapat menangkap kesalahan JavaScript yang dilempar sebelum notifyAppReady() berjalan, tetapi itu tidak merupakan pengganti untuk mengirimkan kode native yang kompatibel code — kesalahan yang menghancurkan nanti, atau menghancurkan secara native, dapat melewati itu.
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.
Bagaimana mengirimkan perubahan native dengan aman Rollbacks.
Dua pengawas komplementer, keduanya memeriksa sebenarnya paket native Anda:
Gagal unggah di CI — --fail-on-incompatible
Tambahkan flag ke langkah Anda. Jika paket native bundel tidak sesuai dengan versi yang sedang berjalan di channel, unggahan bundle upload mengalami kegagalan dengan kode keluaran tidak nol dan tidak ada yang dikirimkan — sehingga pipa Anda mencegah Anda menerbitkan pembaruan OTA diam-diam yang tidak dapat berlaku sampai pengguna menginstal build native: Jendela terminal
bunx @capgo/cli@latest bundle upload --channel production --fail-on-incompatibleCompatible uploads — and cases where the check can’t run (a new channel, or no remote metadata) — pass through unchanged. In an interactive terminal it offers the Capgo Builder native-build flow instead; declining fails. (Can’t be combined with --ignore-metadata-check.)
Mengirimkan pengiriman oleh versi asli — metadata + --auto-min-update-version
Ketika Anda melakukan mengirimkan build asli dan bundle bersamaan, masukkan saluran pada strategi dan unggah dengan metadata . __CAPGO_KEEP_0__ menjalankan pengecekan kompatibilitas pada setiap unggahan dan, ketika bundle memerlukan native __CAPGO_KEEP_1__ yang baru, meningkatkan lantai update sehingga perangkat yang belum menginstal build asli yang sesuai tidak menerima update tersebut: --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-versionTarget Versi untuk set lengkap opsi target. Bagian yang terkait
Sampaikan hanya bundle yang kompatibel menggunakan saluran, aturan semver, dan strategi metadata.
Rollbacks
Sampaikan hanya bundle yang kompatibel menggunakan saluran, aturan semver, dan strategi metadata.
Jika sebuah bundle tidak kompatibel, maka kembalikan saluran ke versi terakhir yang kompatibel.
Jenis Update
Bagaimana cara mengatur waktu, kondisi delay, dan penghalang versi bekerja bersama-sama.
CLI: bundle
Referensi untuk kompatibilitas bundle, releaseType, dan opsi unggah.
Kompatibilitas Asli untuk menjaga pembaruan hidup aman, hubungkannya dengan Pengaturan Versi untuk mengarahkan bundle berdasarkan versi asli, Jika Anda menggunakan Kompatibilitas Asli untuk menjaga pembaruan hidup aman, hubungkannya dengan Pengaturan Versi untuk mengarahkan bundle berdasarkan versi asli, Pengembalian untuk memulihkan ketika bundle yang tidak kompatibel dikirimkan, Jenis Update untuk memahami versi saluran yang menghalangi, dan Capgo CLI referensi bundle untuk perintah kompatibilitas dan releaseType.