Langsung ke konten

Rollback

Meskipun live updates Capgo memungkinkan Anda mengirimkan perbaikan dan peningkatan dengan cepat ke pengguna, terkadang Anda perlu melakukan rollback ke versi aplikasi sebelumnya. Mungkin update baru menyebabkan masalah kritis yang tidak terduga, atau Anda ingin membatalkan perubahan tertentu saat sedang mengerjakan perbaikan.

Capgo menyediakan beberapa cara untuk mengelola build pada sebuah channel dan mengontrol versi aplikasi yang diterima pengguna, termasuk opsi rollback manual maupun mekanisme keamanan otomatis.

Capgo menyertakan mekanisme keamanan bawaan untuk melindungi pengguna dari update yang rusak. Jika terjadi error JavaScript sebelum notifyAppReady() metode dipanggil, plugin akan otomatis melakukan rollback ke versi sebelumnya yang berfungsi dengan baik.

Saat update baru di-download dan diterapkan, Capgo mengharapkan aplikasi Anda memanggil notifyAppReady() dalam jangka waktu yang dapat dikonfigurasi untuk mengonfirmasi bahwa update berhasil dimuat. Metode ini menandakan bahwa:

  • JavaScript bundle berhasil dimuat tanpa error kritis
  • Fungsi utama aplikasi Anda berjalan normal
  • Update aman untuk tetap digunakan

Jika notifyAppReady() tidak dipicu oleh crash JavaScript atau error kritis, Capgo akan:

  1. Mendeteksi bahwa update gagal inisialisasi dengan benar
  2. Otomatis revert ke bundle sebelumnya yang stabil
  3. Menandai update bermasalah sebagai failed agar tidak diterapkan lagi
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Proteksi otomatis ini memastikan bahwa jika Anda tidak sengaja merilis update yang rusak, pengguna Anda tidak akan terjebak dengan aplikasi yang tidak berfungsi.

Anda dapat mengatur berapa lama Capgo menunggu notifyAppReady() untuk dipanggil dengan mengatur appReadyTimeout pada konfigurasi Capacitor Anda:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 10000
}
}
}

Panduan appReadyTimeout nilai ditentukan dalam milidetik. Timeout default biasanya 10 detik, tetapi Anda bisa menyesuaikannya berdasarkan kebutuhan inisialisasi aplikasi. Jika aplikasi butuh waktu lebih lama untuk load karena proses inisialisasi yang kompleks, Anda mungkin perlu menaikkan nilai ini.

Setiap kali Anda upload build baru dan menetapkannya ke sebuah channel, Capgo menyimpan riwayat build tersebut. Jika Anda perlu membatalkan update tertentu, Anda bisa memilih salah satu build sebelumnya untuk redeploy ke channel tersebut.

Antarmuka UI Rollback

Cara utama untuk melakukan rollback adalah melalui antarmuka rollback yang terletak di tab ke-4 (History) saat melihat channel di Capgo Dashboard. Tab ini memberikan tampilan lengkap dari semua build yang tersedia untuk channel tersebut, sehingga Anda dapat dengan mudah memilih dan kembali ke versi sebelumnya.

Cara rollback menggunakan tab History:

  1. Log in to the Dashboard Capgo.

  2. Navigate to the “Channels” section.

  3. Klik nama channel yang ingin Anda rollback.

  4. Buka tab ke-4 (History) pada tampilan channel.

  5. Cari build yang ingin Anda kembalikan di riwayat build.

  6. Pilih build tersebut untuk menjadikannya build aktif bagi channel.

  7. Konfirmasi bahwa Anda ingin melakukan rollback ke build ini.

Sebagai cara kedua, Anda juga bisa melakukan rollback langsung dari tab pertama dengan mengklik ikon mahkota di samping build mana pun pada riwayat build channel:

  1. Di tab pertama tampilan channel, temukan build yang ingin Anda jadikan tujuan rollback.
  2. Klik ikon mahkota di samping build tersebut untuk menjadikannya build aktif bagi channel tersebut. Opsi manajemen channel
  3. Konfirmasi bahwa Anda ingin melakukan rollback ke build ini.

Setelah rollback, perangkat yang dikonfigurasi untuk memantau channel yang diperbarui akan menerima build sebelumnya saat mereka mengecek update berikutnya. Build hasil rollback akan dianggap sebagai update baru, sehingga alur dan kondisi update biasa tetap berlaku.

Mengalihkan channel biasanya baru akan aktif saat perangkat mengecek update berikutnya. Capgo Notifications dapat mengirim notifikasi silent update-check ke aplikasi yang didukung saat sedang di background. Dengan integrasi updater yang aktif, aplikasi dapat mengecek, download, dan menginstal rollback sesuai mode update yang dikonfigurasi.

Ini adalah jalur akselerasi, bukan perintah paksa ke seluruh fleet. Pengiriman bersifat best-effort dan bergantung pada penjadwalan background OS, ketersediaan jaringan, serta status perangkat. Ini tidak bisa mengupdate aplikasi yang offline atau force-quit, sehingga tidak bisa menjamin waktu pasti untuk mencapai setiap perangkat.

Untuk menyiapkan jalur ini, ikuti Notifikasi: Aktifkan Silent Update Checks.

Jika Anda ingin menghentikan update pada sebuah channel sementara waktu saat menyelidiki masalah, Anda dapat memutuskan tautan (unlink) channel tersebut dari build saat ini.

Untuk melakukan unlink channel:

  1. Navigate to the channel in the Capgo Dashboard.

  2. Klik tombol “Unlink” di samping build saat ini.

  3. Konfirmasi bahwa Anda ingin melakukan unlink channel.

Setelah channel di-unlink, channel tersebut tidak akan mendistribusikan update baru. Perangkat yang terkonfigurasi ke channel tersebut akan tetap di build saat ini sampai channel dihubungkan kembali ke sebuah build.

Ini berguna jika Anda menemukan masalah pada sebuah update tetapi belum yakin ingin rollback ke build yang mana. Melepas tautan (unlinking) channel memberi Anda waktu untuk investigasi tanpa mengirimkan update lebih lanjut.

Dalam situasi yang lebih serius, Anda mungkin ingin mengembalikan semua perangkat pada sebuah channel ke web build yang awalnya dipaketkan bersama native binary aplikasi Anda. Ini dikenal sebagai “built-in bundle”.

Untuk memaksa penggunaan built-in bundle pada sebuah channel:

  1. Buka channel tersebut di Capgo Dashboard.

  2. Klik tombol “Built-in Bundle”.

  3. Konfirmasi bahwa Anda ingin memaksa penggunaan built-in bundle.

Saat Anda memaksa built-in bundle, semua perangkat yang terkonfigurasi ke channel tersebut akan kembali ke web build asli yang dipaketkan pada saat pengecekan update berikutnya. Ini akan terjadi terlepas dari build apa yang sedang mereka gunakan saat ini.

Ini adalah opsi rollback yang lebih agresif daripada kembali ke build spesifik sebelumnya, karena opsi ini akan menghapus semua Live Update yang dirilis sejak aplikasi terakhir kali dipublikasikan ke app store.

Untuk mendeteksi masalah dengan cepat dan meminimalkan dampak update yang bermasalah, penting bagi Anda untuk memiliki rencana monitoring rilis dan cara menangani masalah yang muncul.

Beberapa strateginya meliputi:

Untuk rollout yang masih terbatas pada satu cohort, gunakan Rollout bertahap untuk menghentikan exposure atau menghapus targetnya sebelum mengubah stable bundle untuk seluruh channel.

  • Memantau crash reports dan feedback pengguna segera setelah merilis update
  • Menggunakan phased rollouts atau sistem staged channel untuk menguji update pada grup kecil sebelum rilis luas
  • Miliki proses pengambilan keputusan yang jelas kapan harus melakukan rollback, unlink, atau memaksa penggunaan built-in bundle, serta siapa yang berwenang melakukannya
  • Mengomunikasikan masalah dan solusinya kepada pengguna, jika diperlukan

Dengan memadukan monitoring yang cermat dan kemampuan mengelola update bermasalah secara cepat, Anda dapat menghadirkan pengalaman aplikasi yang terus meningkat sambil meminimalkan gangguan bagi pengguna.

Jika Anda menggunakan Rollback untuk merencanakan rollback dan version control, hubungkan dengan Targeting Versi untuk detail implementasi di Version Targeting, Perilaku Update untuk detail implementasi di Update Behavior, bundle untuk detail implementasi pada bundle, Capgo Live Updates untuk alur kerja produk di Capgo Live Updates, dan Strategi Rollback untuk Capacitor Live Updates untuk konteks praktis dalam Strategi Rollback untuk Capacitor Live Updates.