Jika Anda mencari alternatif hot code push Cordova, kemungkinan besar karena cordova-hot-code-push-plugin dan CodePush untuk Cordova dari Microsoft keduanya berhenti berfungsi atau tidak lagi dipelihara. Opsi yang dipelihara saat ini adalah @capgo/cordova-updater, sebuah plugin Cordova yang menghadirkan Capgo live updates untuk aplikasi Cordova Android 13+ dan Cordova iOS 7+, dengan channel, rollback, dan bundle terenkripsi, tanpa memaksa Anda bermigrasi ke Capacitor terlebih dahulu.
Kondisi live updates Cordova di tahun 2026
cordova-hot-code-push telah diarsipkan
Panduan nordnet/cordova-hot-code-push repository diarsipkan di GitHub. Perubahan code terakhir terjadi pada September 2018 dan rilis npm terakhir dari cordova-hot-code-push-plugin adalah 1.5.3. Plugin ini dirancang untuk platform Cordova dan pemuatan WebView berbasis file pada masa itu. Cordova Android modern menyajikan aplikasi dari https://localhost melalui path handler, dan Cordova iOS menggunakan WKWebView dengan app:// scheme. Plugin yang mengasumsikan file:// loading tidak sesuai dengan model tersebut, dan tidak ada yang memperbaruinya.
Instalasi yang sudah ada mungkin masih terlihat berfungsi jika Anda tidak pernah memperbarui platform Cordova. Itulah jebakannya: Anda tidak bisa beralih ke Cordova Android atau Xcode versi terbaru tanpa berisiko merusak mekanisme update.
CodePush untuk Cordova sudah tidak ada
Microsoft mengarsipkan cordova-plugin-code-push, mengakhiri dukungan Cordova di App Center pada 2022, dan menghentikan layanan inti App Center, termasuk build, distribusi, dan CodePush, pada 31 Maret 2025. Plugin tersebut terhubung ke layanan CodePush di App Center, jadi tidak ada backend lagi yang mengirim update. Jika Anda beralih ke self-hosting server CodePush, Anda tetap bergantung pada plugin client yang sudah diarsipkan.
Ionic Appflow
cordova-plugin-ionic menghubungkan aplikasi Cordova ke live updates Ionic Appflow. Ionic telah mengumumkan Appflow akan dihentikan, jadi tim yang memakainya juga mencari pengganti. Kami bahas jalur itu di panduan alternatif Appflow.
Yang dibutuhkan sebuah pengganti
Sebelum memilih tool apa pun, cek dulu persyaratan berikut:
| Persyaratan | Mengapa ini penting |
|---|---|
| Kompatibel dengan Cordova Android dan iOS terkini | Persyaratan store memaksa upgrade platform: Xcode 26 untuk upload ke App Store sejak April 2026, dan kenaikan target API Android setiap tahun di Google Play |
Tanpa ketergantungan pada cordova-plugin-ionic-webview |
Plugin itu sudah usang dan bertentangan dengan scheme handler modern |
| Rollback otomatis | Bundle yang buruk tidak boleh merusak aplikasi |
| Channel | Uji pada pengguna internal sebelum dirilis ke semua orang |
| Bundle yang ditandatangani atau dienkripsi | Mencegah manipulasi code yang dikirimkan melalui jaringan |
| Targeting versi | Jangan pernah kirim JavaScript yang membutuhkan native shell yang lebih baru |
| Ramah CI CLI | Rilis harusnya satu perintah di pipeline Anda |
| Dipelihara | Cek rilis terbaru, bukan cuma bintang |
Capgo untuk Cordova
@capgo/cordova-updater menggunakan API JavaScript yang sama dengan @capgo/capacitor-updater dan backend Cloud Capgo yang sama. Bundles, channels, stats, dan signing bekerja dengan cara yang sama untuk klien Cordova, Capacitor, dan Electron.
Persyaratan
- Cordova CLI 12+
- Cordova Android 13+ (default
https://localhost/scheme) - Cordova iOS 7+ (default
app://localhost/scheme) cordova-plugin-ionic-webviewdihapus
Periksa platform Anda:
cordova platform ls
Upgrade jika diperlukan:
cordova platform rm android && cordova platform add android@latest
cordova platform rm ios && cordova platform add ios@latest
Instal
Buat aplikasi di Capgo (dashboard atau CLI), lalu tambahkan plugin dengan app ID Anda:
bunx @capgo/cli@latest login
bunx @capgo/cli@latest app add com.example.app --name "My Cordova App"
cordova plugin add @capgo/cordova-updater --variable APP_ID=com.example.app
cordova prepare android ios
Anda dapat mengatur lebih banyak opsi saat instalasi. Ini adalah variabel plugin, jadi jalankan cordova prepare setelah mengubahnya:
cordova plugin add @capgo/cordova-updater \
--variable APP_ID=com.example.app \
--variable DEFAULT_CHANNEL=production \
--variable AUTO_UPDATE=atBackground \
--variable APP_READY_TIMEOUT=10000
AUTO_UPDATE defaultnya adalah atBackground, yang mengunduh update di latar belakang dan menerapkannya saat aplikasi berikutnya dipindahkan ke latar belakang. Mode lainnya meliputi atInstall, onLaunch dan off untuk kontrol manual penuh.
Beri tahu plugin bahwa aplikasi telah dimulai dengan benar
Ini satu baris yang tidak boleh dilewati. Panggil notifyAppReady() setiap kali aplikasi diluncurkan setelah deviceready. Jika bundle baru tidak memanggilnya dalam APP_READY_TIMEOUT milidetik, plugin akan menandainya gagal dan melakukan rollback ke bundle terakhir yang berfungsi.
document.addEventListener('deviceready', async () => {
const { Updater } = cordova.plugins;
await Updater.notifyAppReady();
}, false);
Panggil setelah app benar-benar ter-render, bukan di bagian paling atas script, supaya bundle yang crash saat startup bisa terdeteksi.
Alur update manual
Jika Anda mengatur AUTO_UPDATE=off, Anda yang mengontrol kapan harus cek, download, dan apply:
document.addEventListener('deviceready', async () => {
const { Updater } = cordova.plugins;
await Updater.notifyAppReady();
const latest = await Updater.getLatest();
if (latest.url && !latest.error) {
const bundle = await Updater.download({
url: latest.url,
version: latest.version,
checksum: latest.checksum,
});
// Applied on next background/restart
await Updater.next({ id: bundle.id });
}
});
Tipe TypeScript sudah termasuk dalam package:
import type { UpdaterPlugin } from '@capgo/cordova-updater';
declare const cordova: { plugins: { Updater: UpdaterPlugin } };
Terbitkan update
Build www folder Anda lalu upload:
bun run build
bunx @capgo/cli@latest bundle upload com.example.app --path ./www --channel production
Letakkan itu di CI setelah test Anda. halaman live updates menampilkan rollout channel, statistik, dan rollback dari dashboard.
Migrasi dari cordova-hot-code-push
- Hapus plugin lama dan konfigurasinya. Hapus
cordova-hot-code-push-plugin,chcpbagian diconfig.xml, dancordova-hcpCLI danchcp.json/chcp.manifestgenerasi dari build Anda. - Hapus
cordova-plugin-ionic-webviewjika ada, dan uji bahwa aplikasi berjalan di WebView Cordova default. - Upgrade platform Cordova ke Android 13+ dan iOS 7+.
- Instal
@capgo/cordova-updaterdan tambahkannotifyAppReady(). - Rilis build store baru. Instalasi lama tetap menggunakan plugin lama. Hanya binary baru yang berisi updater Capgo.
- Upload bundle pertama Anda ke channel test, periksa di perangkat, lalu promosikan ke produksi.
Pengguna yang tidak memperbarui dari store tetap menggunakan mekanisme lama sampai mereka melakukannya. Biarkan server update lama Anda tetap online selama transisi jika masih berfungsi, atau terima bahwa pengguna tersebut tidak akan mendapatkan update OTA sampai mereka menginstal binary baru.
Migrasi dari CodePush untuk Cordova
- Ganti
codePush.sync()panggilan dengannotifyAppReady()and either automatic mode or thegetLatest/download/nextaliran. - Ganti deployment keys dengan channel (
DEFAULT_CHANNEL). - Ganti
code-push release-cordovadenganbunx @capgo/cli@latest bundle upload. - Hapus
CodePushDeploymentKeypreferensi dariconfig.xml.
Untuk versi langkah demi langkah yang ditujukan untuk pengguna App Center, lihat panduan migrasi App Center.
Keamanan dan aturan store
- Enkripsi dan penandatanganan. Atur
PUBLIC_KEYsaat instalasi dan gunakan kunci enkripsi CLI, sehingga perangkat hanya menerima bundle yang ditandatangani untuk aplikasi Anda. - Kebijakan Apple dan Google. Keduanya mengizinkan pembaruan code yang diinterpretasikan seperti JavaScript secara over-the-air, selama Anda tidak mengubah tujuan aplikasi atau menambahkan fitur yang perlu di-review. code native, plugin baru, dan perubahan izin memerlukan rilis store.
- Targeting versi. Jika sebuah bundle membutuhkan plugin native yang hanya ada di binary versi terbaru, arahkan ke versi native tersebut. Dokumentasi Capgo di kompatibilitas live update menjelaskan caranya.
Pemecahan Masalah
Bundle terunduh tapi aplikasi masih menampilkan versi lama. Anda masih menggunakan cordova-plugin-ionic-webview, atau custom scheme. Hapus dan gunakan default.
Aplikasi rollback setelah setiap update. notifyAppReady() tidak dipanggil, atau dipanggil setelah error. Cek console di perangkat dan pastikan pemanggilan itu berjalan setiap kali start.
Build iOS gagal setelah upgrade platform. Cordova iOS 7+ membutuhkan Xcode terbaru. Upload ke App Store memerlukan Xcode 26. Anda dapat menghasilkan aset signing dengan iOS certificate generator kami. Setelah beralih ke Capacitor, Build Capgo dapat menghasilkan build iOS yang ditandatangani di cloud tanpa Mac lokal.
Update berfungsi di Android tetapi tidak di iOS. Periksa bahwa skema iOS di config.xml adalah default app scheme dengan localhost hostname.
Apakah sebaiknya Anda beralih ke Capacitor?
Anda tidak harus. Capgo untuk Cordova ada agar Anda tetap bisa rilis sambil memutuskan. Capacitor menyediakan lapisan native yang terawat, Swift Package Manager di iOS, dan ekosistem plugin yang lebih besar. Saat Anda siap, pertahankan ID aplikasi Capgo dan channel yang sama, lalu ganti plugin klien. Panduan migrasi Cordova ke Capacitor menjelaskan langkah-langkahnya.