Pengertian Perbarui Hidup dalam Capgo
Perbarui hidup adalah salah satu fitur paling kuat dalam aplikasi Capacitor, memungkinkan perbarui waktu nyata tanpa pengajuan toko aplikasi. Mari kita telusuri lebih dalam bagaimana Capgo menerapkan fungsi ini.
Konsep Dasar
Aplikasi Capacitor terdiri dari dua lapisan utama:
- Lapisan Web: Mengandung file HTML, CSS, dan JavaScript yang dimuat dalam WebView
- Lapisan Native: Mengandung kode code yang spesifik platform (Java/Kotlin untuk Android, Swift untuk iOS)
Sistem perbarui hidup Capgo bekerja dengan mengganti lapisan web secara waktu nyata, karena file-file ini tidak dikompilasi ke dalam biner aplikasi.
Penerapan Teknis
Jalur Server di Capacitor
Capgo mengelola dua jalur kritis:
- Jalur Server Saat Ini: Menunjuk ke file yang sedang dimuat di WebView
- Jalur Server Berikutnyacontext: Halaman/area: Capgo Builder / produk halaman native cloud build. Peran: Label UI singkat atau item navigasi. Pesan kunci `native_build_builder_credit_next` (Kredit Pembangun Native Build Berikutnya).
: Menunjuk ke file yang akan dimuat pada restart aplikasi berikutnya
On Android, Capgo manages paths through:
// Store next server path
private void setNextCapacitorServerPath(String path) {
SharedPreferences prefs = context.getSharedPreferences("CapWebViewSettings", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("serverBasePath", path);
editor.apply();
}
// Update current path and reload
private void setCurrentCapacitorServerPath(String path) {
bridge.setServerBasePath(path);
bridge.reload();
}
Pada Android, __CAPGO_KEEP_0__ mengelola jalur melalui:
Pengimplementasian iOS
// Store next server path
private func setNextCapacitorServerPath(path: String) {
KeyValueStore.standard["serverBasePath"] = path
}
// Update current path
private func setCurrentCapacitorServerPath(path: String) {
bridge.viewController.setServerBasePath(path: path)
}
Pada iOS, jalur dielola melalui:
Pengamanan Keamanan Militer-Grade Capgo melalui enkripsi akhir-ke-akhir, memastikan pembaruan aplikasi Anda tetap sepenuhnya aman dari pengembangan hingga pengembangan. Sistem enkripsi kami melampaui tanda tangan tradisional code untuk menyediakan keamanan nol-ketahuan yang benar.
Arsitektur Enkripsi Akhir ke Akhir
-
Enkripsi Akhir ke Akhir (E2EE): Setiap bundle pembaruan dienkripsi menggunakan enkripsi AES-256-GCM sebelum meninggalkan lingkungan pengembangan Anda. Enkripsi militer ini memastikan bahwa pembaruan aplikasi Anda tetap sepenuhnya pribadi dan aman selama proses pengiriman yang lengkap.
-
Arsitektur Tanpa Pengetahuan: Unlike other OTA update solutions that only sign updates, Capgo employs true zero-knowledge encryption. This means:
- Pembaruan isi dienkripsi sebelum diunggah
- Capgo servers only store encrypted data
- Penyandian hanya terjadi pada perangkat pengguna akhir
- Tidak ada perantara yang dapat mengakses konten pembaruan Anda
-
Pengelolaan Kunci yang Aman:
- Kunci enkripsi dihasilkan dan disimpan dengan aman di lingkungan CI/CD Anda
- Private keys never touch Capgo’s servers
- Setiap versi aplikasi dapat menggunakan kunci enkripsi unik
- Support rotasi kunci untuk keamanan yang lebih tinggi
Pelajari lebih lanjut tentang sistem enkripsi kami di panduan detail kami: Enkripsi End-to-End di Capgo Live Updates
Proses Keamanan Update
-
Enkripsi Sebelum Mengunggah:
- Update dienkripsi dalam pipeline CI/CD Anda
- Setiap file dienkripsi secara individu
- Metadata juga dienkripsi untuk privasi yang lengkap
-
Penyimpanan yang Aman:
- Encrypted bundles are stored on Capgo’s global CDN
- Tidak ada data teks biasa yang pernah menyentuh server kami
- Meskipun terjadi serangan server, data tetap aman
-
Penyampaian yang Aman:
- Pembaruan disampaikan melalui saluran yang terenkripsi
- Setiap instance aplikasi memvalidasi integritas enkripsi
- Mekanisme ulang coba otomatis untuk dekripsi gagal
-
Keamanan Sisi Klien:
- Pembaruan diverifikasi sebelum instalasi
- Dekripsi gagal memicu rollback otomatis
- Penggunaan penyimpanan kunci yang aman di penyimpanan aplikasi yang dilindungi
Langkah keamanan ini secara menyeluruh memastikan bahwa pembaruan aplikasi Anda tetap dilindungi dari:
- Serangan man-in-the-middle
- Serangan serangan sisi server
- Modifikasi yang tidak diotorisasi
- Pengulangan serangan
- Pengacakan konten
Proses Perbaruan
Proses perbaruan Capgo dirancang untuk otomatis secara default. Berikut cara kerja proses otomatis:
1. Periksa Perbaruan Otomatis
Plugin ini secara otomatis memeriksa perbaruan dalam situasi-situasi berikut:
- Saat aplikasi dimulai
Perilaku ini dikontrol oleh pengaturan: autoUpdate Pengaturan ini juga dapat diakses secara manual dengan menggunakan
// capacitor.config.json
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": true // Enable automatic updates
}
}
}
2. Download Otomatis getLatest()
Serangan ulang rekaman
When versi baru ditemukan, jika autoUpdate aktif:
- Pengunduhan dimulai secara otomatis
- Progress diikuti secara internal
- Pengunduhan gagal akan diretry secara otomatis setiap aplikasi dibuka
- Pengunduhan sukses disimpan di penyimpanan aplikasi
Anda dapat memantau proses ini melalui event:
CapacitorUpdater.addListener('download', (info: DownloadEvent) => {
console.log('Auto-download progress:', info.percent);
});
CapacitorUpdater.addListener('downloadComplete', (info: DownloadCompleteEvent) => {
console.log('Auto-download complete:', info.bundle);
});
3. Instalasi Otomatis
Waktu instalasi tergantung pada konfigurasi Anda:
// capacitor.config.json
{
"plugins": {
"CapacitorUpdater": {
"autoUpdate": true,
"directUpdate": false // install update on app backgrounding
"resetWhenUpdate": true, // reset live updates on native update (true by default)
"autoDeleteFailed": true, // Auto cleanup failed updates (true by default)
"autoDeletePrevious": true // Auto cleanup old versions (true by default)
}
}
}
Instalasi terjadi:
- Segera jika
directUpdatebenar - On aplikasi selanjutnya backgrounding jika
directUpdatebenar - Jika instalasi gagal, plugin ini secara otomatis melakukan rollback:
Plugin ini juga secara otomatis mengelola penyimpanan:
- Menghapus update gagal jika
autoDeleteFailedbenar - Menghapus versi lama jika
autoDeletePreviousbenar
Mengundurkan Update
Kamu dapat mengontrol kapan update diinstal menggunakan kondisi delay:
// Delay until app goes to background
await CapacitorUpdater.setDelay({
kind: 'background'
});
// Delay until specific date
await CapacitorUpdater.setDelay({
kind: 'date',
value: '2024-03-20T10:00:00.000Z'
});
// Delay until next native version
await CapacitorUpdater.setDelay({
kind: 'nativeVersion'
});
// Multiple conditions
await CapacitorUpdater.setMultiDelay({
delayConditions: [
{
kind: 'background'
},
{
kind: 'date',
value: '2024-03-20T10:00:00.000Z'
}
]
});
Kondisi delay yang tersedia:
- latar belakangInstalasikan ketika aplikasi masuk ke latar belakang
- tanggalInstalasikan setelah tanggal spesifik/waktu
- nativeVersionInstalasikan setelah pembaruan native berikutnya
- killInstalasikan setelah aplikasi dibunuh
Ini berguna untuk:
- Mengatur pembaruan selama jam-jam sibuk
- Mengkoordinasikan pembaruan dengan aktivitas pengguna
- Menjamin pengalaman pembaruan yang lancar
- Mencegah gangguan selama tugas-tugas kritis
Status Pembaruan
Selama proses otomatis, paket melalui status-status berikut:
- mengunduh: Sedang mengunduh
- menunggu: Mengunduh selesai, menunggu instalasi
- berhasil: Pembaruan terpasang dan aktif
- gagal: Pembaruan gagal (mengaktifkan rollback otomatis)
Ketentuan Toko
App Store Apple ✅
Update Hidup sepenuhnya kompatibel dengan kebijakan App Store Apple. Seperti yang disebutkan dalam Perjanjian Lisensi Program Pengembang Apple:
“Interpreted code dapat diunduh ke sebuah Aplikasi tetapi hanya selama code: (a) tidak mengubah tujuan utama Aplikasi dengan menyediakan fitur atau fungsi yang tidak konsisten dengan tujuan dan iklan yang dimaksudkan Aplikasi yang disampaikan ke App Store, (b) tidak menciptakan toko atau tempat jual untuk code atau aplikasi lainnya, dan (c) tidak menghindari tanda tangan, sandbox, atau fitur keamanan lainnya dari OS.”
Capgo update hanya memodifikasi layer web sementara menghormati semua batasan keamanan platform.
Google Play Store ✅
Update Hidup kompatibel dengan Kebijakan Google Play. Kebijakan Penyalahgunaan Perangkat dan Jaringan secara khusus menyatakan:
“Keterbatasan ini tidak berlaku untuk code yang berjalan di mesin virtual atau interpreter di mana salah satunya memberikan akses tidak langsung ke API Android (seperti JavaScript di webview atau browser).”
Karena Capgo hanya memperbarui konten WebView, maka hal ini jatuh dalam pedoman yang diizinkan.
Praktik Terbaik
- Rollout Berperingkat: Rilis update secara bertahap
- Pengendalian Versicontext: Halaman/area: Situs web pemasaran Capgo. Peran: Label UI singkat atau item navigasi. Kunci pesan `version_control` (Pengendalian Versi).
- Pemulihan Rollback: Pemulihan cepat dari masalah
- Perbarui Deltacontext
: Unduh hanya file yang berubah
Kapan Menggunakan Perbarui Langsung
- Baik untuk:
- Perbaikan bug
- Perbaikan UI
- Perbarui konten
Tombol fitur
- Tidak cocok untuk: Perubahan native code
- Perubahan besar versi
- Pembaruan keamanan yang memerlukan perubahan asli
Teruskan dari Bagaimana Live Updates Bekerja di Capgo
Jika Anda menggunakan __CAPGO_KEEP_0__ Bagaimana Live Updates Bekerja di Capgo untuk merencanakan pekerjaan plugin asli, hubungkannya dengan __CAPGO_KEEP_0__ Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capgo Plugin oleh __CAPGO_KEEP_1__ untuk detail implementasi di Capacitor Plugin oleh Capgo, for the implementation detail in Capacitor Plugins by Capgo, untuk detail implementasi di Menambahkan atau Mengupdate Plugin, Perubahan besar versi Alternatif Plugin Bisnis Ionic Enterprise untuk alur kerja produk dalam Alternatif Plugin Bisnis Ionic Enterprise, dan Capgo Pembangunan Nativ untuk alur kerja produk dalam Capgo Pembangunan Nativ.