Langsung ke konten

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-updater
npx 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:

Terminal window
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