Pengenalan - Pembaruan Otomatis
Dokumentasi ini akan menjelaskan cara menjalankan server auto-update Anda
Sebelum memulai
Jika Anda menggunakan karya ini untuk keperluan sendiri, saya sangat menyarankan untuk mendukung pekerjaan saya melalui ini
Saya membuat keputusan besar untuk membuka source code berharga yang saya bangun di sini
Saya bisa saja menyimpannya untuk diri sendiri dan memberikan harga tinggi
Lebih lanjut, saya ingin fokus pada Capgo tooling dan membuatnya menjadi bisnis yang terbuka dan transparan
Demikian pula, saya pikir ini akan membuat dunia kita menjadi tempat yang lebih baik dengan keterbukaan daripada bertarung dan bersembunyi
Tapi untuk membuatnya mungkin, kita semua harus berperan, termasuk Anda 🥹
Jika penawaran capgo tidak cocok untuk Anda, tentukan harga Anda sendiri dan dukung seorang Maker bootstrapped DI SINI sesuai ketentuan Anda
Instalasi Cepat
npm install @capgo/capacitor-updaternpx cap sync
Konfigurasi
Anda harus mengkonfigurasi plugin untuk menggunakan URL Anda seperti ini:
{ "plugins": { "CapacitorUpdater": { "updateUrl": "https://URLANDA", } }}
🚧 Di android tidak diizinkan untuk request ke HTTP, untuk keperluan testing izinkan ini
API Update
Plugin akan melakukan panggilan POST ke API Anda setiap kali aplikasi dibuka, dengan body ini:
interface AppInfos { "platform": "ios" | "android", "device_id": "UUID_of_device_unique_by_install", "app_id": "APPID_FROM_CAPACITOR_CONFIG", "custom_id": "your_custom_id_set_on_runtime", "plugin_version": "PLUGIN_VERSION", "version_build": "VERSION_NUMBER_FROM_NATIVE_CODE", "version_code": "VERSION_CODE_FROM_NATIVE_CODE", "version_name": "LAST_DOWNLOADER_VERSION" | "builtin" "version_os": "VERSION_OF_SYSYEM_OS", "is_emulator": boolean, "is_prod": boolean,}
Server API harus merespons dalam JSON ke plugin capacitor-updater dengan data ini jika update diperlukan:
{"version": "123","url": "https://path_to_the_zip_file_of_the_codecom"}
Dalam Auto-update server harus melakukan pekerjaan membandingkan versi dan mengembalikan yang benar, jika kunci URL ada, plugin akan memulai proses unduhan
Jika Anda menambahkan kunci “message” dan “error”, versi tidak akan diatur, dan pesan akan ditampilkan dalam log sebagai gantinya
Kunci version
harus dalam format semver
Zip harus memiliki indexhtml
sebagai file di root, atau hanya satu folder di root dengan indexhtml
di dalamnya
Anda dapat menggunakan perintah CLI untuk mengzip bundle Anda:
npx @capgo/cli bundle zip --path [/path/to/my/bundle]
Enkripsi End-to-end
Mulai dari versi 4150 plugin memungkinkan Anda mengirim update terenkripsi
Anda dapat menggunakan fitur ini dengan membuat private key npx @capgo/cli key create
Kemudian enkripsi file zip Anda dengan npx @capgo/cli encrypt [path/to/zip]
Perintah akan mencetak ivSessionKey
yang harus dikirim dengan payload update Anda dalam kunci session_key
Kemudian aplikasi Anda akan dapat menggunakan private key untuk mendekripsi session_key
dan menggunakan session_key
terdekripsi untuk mendekripsi update
Pelajari lebih lanjut tentang ini di sini:
API Statistik
Mulai dari versi 130 sistem update mengirim statistik!
Secara default, semua statistik dikirim ke server kami, untuk memahami penggunaan
💡 Tidak ada data pribadi yang dikirim untuk statistik, hanya UUID acak, versi update, versi aplikasi native, platform, tindakan, dan ID aplikasi
Jika Anda ingin mengirim data ke server Anda sebagai gantinya, ubah konfigurasi di bawah ini:
// capacitorconfigjson{ "appId": "*******", "appName": "Name", "plugins": { "CapacitorUpdater": { "statsUrl": "URL_ANDA" } }}
Yang akan diterima server Anda adalah:
interface AppInfosStats { "action": "set", // bisa set, delete, set_fail, reset, revert // Kemudian informasi yang sama seperti update "app_id": "*******", // pengenal aplikasi di store "device_id": "*******", // id unik per instalasi aplikasi "platform": "ios", // atau android "custom_id": "user_1", // merepresentasikan pengguna Anda "version_name": "123", // versi dari web build "version_build": "120", // versi dari native build "version_code": "120", // nomor build dari native build "version_os": "16", // versi OS perangkat "plugin_version": "400"// untuk membuat api Anda berperilaku berbeda dengan plugin yang berbeda "is_emulator": false, "is_prod": false,}
Anda juga dapat menonaktifkannya sepenuhnya dengan string kosong. Perlu diingat, statistik dibuat ramah privasi dan membantu saya memahami bagaimana orang menggunakan plugin, untuk menyelesaikan masalah dan meningkatkannya
API Channel
Akan didokumentasikan