Langsung ke konten

FAQ

Jika ada pertanyaan yang belum terjawab di sini, silakan tanya! Baik membuat issue maupun bertanya di Discord berfungsi.

Code push, atau sering disebut “over-the-air updates” (OTA), adalah layanan cloud yang memungkinkan developer Capacitor untuk deploy update ke aplikasi mereka di production. Capgo saat ini mendukung Android, iOS, dan Electron.

“Code Push” merujuk pada nama fitur deploy yang digunakan oleh komunitas React Native dari Microsoft dan Expo, yang keduanya tidak mendukung Capacitor.

Apakah major Capgo CLI harus cocok dengan plugin atau versi Capacitor saya?

Bagian berjudul “Apakah major Capgo CLI harus cocok dengan plugin atau versi Capacitor saya?”

Tidak. Selalu gunakan Capgo CLI terbaru (npx @capgo/cli@latest). Console CLI dan Capgo mengikuti versioning sendiri dan tetap kompatibel dengan major updater plugin yang didukung. Plugin Capgo mengikuti major Capacitor; lihat versioning Capgo untuk tag LTS seperti @lts-v7.

Kami memakai istilah “release” untuk menyiapkan binary untuk app store. Agar nanti bisa membuat bundle, Capgo perlu tahu binary persis yang dikirim ke app store.

Kami menggunakan istilah “bundle” untuk merujuk pada patch yang dapat diterapkan pada sebuah rilis guna memperbaruinya ke code yang baru. npx @capgo/cli@latest bundle upload command digunakan untuk menghasilkan bundle dari code lokal baru Anda, yang kemudian dikirim ke pengguna Anda.

Apakah ada batasan file-path pada Delta update?

Bagian berjudul “Apakah ada batasan file-path untuk Delta update?”

Ya:

  • File nol-byte: The CLI logs Ignoring empty file... dan mengecualikan file kosong dari file delta. Proses upload tidak akan gagal, sehingga file kosong dapat mengubah bundle hasil akhir tanpa menghentikan deployment Anda. Jangan sertakan file nol-byte dalam path Delta bundle.
  • Path dengan spasi: Upload Delta akan gagal lebih awal dengan pesan error yang jelas jika path bundle mengandung spasi. Ubah nama file atau direktori untuk menghilangkan spasi sebelum mengupload Delta update.

Lihat Update Delta untuk detail setup.

Project board kami juga bersifat publik dan dapat ditemukan di: https://github.com/orgs/Cap-go/projects

Tim kami juga bekerja secara terbuka, jadi Anda bisa melihat apa yang sedang kami kerjakan kapan saja. Kami senang menjawab pertanyaan apa pun mengenai roadmap atau prioritas kami melalui Github issues atau Discord.

Bisakah saya menggunakan Capgo bersama tim saya?

Bagian berjudul “Bisakah saya menggunakan Capgo dengan tim saya?”

Ya! Semua plan mendukung developer tanpa batas. Kami hanya membatasi metrik aplikasi (MAU, storage, dan bandwidth) per organisasi.

Lihat Tim untuk informasi lebih lanjut.

Tidak. Server Capgo tidak pernah melihat source code Anda. Saat Anda menjalankan npx @capgo/cli@latest bundle upload, Capgo menyimpan file zip dari code yang sudah di-minify/compile - code yang sama dengan yang diterima browser, bukan source code Anda.

Untuk keamanan tambahan, Anda punya dua opsi:

  • Enkripsi End-to-End: Enkripsi bundle Anda sebelum upload untuk melindunginya saat disimpan maupun saat transit, serta mencegah pihak ketiga membuat update terenkripsi yang valid tanpa private key Anda. Ini tidak membuat aset web yang sudah dikirim mustahil di-reverse engineer karena public key tetap ada di dalam aplikasi yang didistribusikan.
  • Upload URL Eksternal: Simpan bundle di server sendiri dan cukup berikan link download ke Capgo dengan opsi tersebut --external <url>

Lihat juga kebijakan privasi kami: https://capgo.app/privacy

Tidak. File bundle adalah aset web publik yang memang ditujukan untuk diunduh oleh pengguna aplikasi Anda. Siapa pun yang mengetahui URL bundle dapat mengambil file tersebut, dan Capgo menginformasikan hal ini kepada pengguna saat setup dan di dokumentasi.

Akses ke file bundle tidak dianggap sebagai kebocoran data. Jangan masukkan rahasia, kredensial, data pribadi, atau data yang diatur regulasi ke dalam app bundle Anda. Jika Anda butuh kerahasiaan lebih tinggi untuk kasus penggunaan keamanan tinggi, gunakan end-to-end encryption, namun tetap perlakukan code dan aset aplikasi yang dikirim sebagai data publik dari perspektif pelaporan keamanan.

Bisakah saya menggunakan Capgo dari sistem CI saya?

Bagian berjudul “Bisakah saya menggunakan Capgo dari sistem CI saya?”

Ya. Capgo memang dirancang untuk digunakan dari sistem CI. Kami telah menerbitkan panduan untuk Android dan Github Actions dan iOS, dan untuk GitLab. Sistem CI lain seharusnya serupa.

Jangan ragu untuk menghubungi kami melalui GitHub issues atau Discord jika Anda menemui masalah.

Apa hubungannya dengan Firebase Remote Config atau Launch Darkly?

Bagian berjudul “Bagaimana ini berhubungan dengan Firebase Remote Config atau Launch Darkly?”

Code push memungkinkan penambahan code baru / penggantian code di perangkat. Firebase Remote Config dan Launch Darkly keduanya adalah sistem konfigurasi. Mereka memungkinkan Anda mengubah konfigurasi aplikasi tanpa harus merilis versi baru. Mereka tidak dimaksudkan untuk menggantikan code.

Seberapa besar footprint dependency yang ditambahkan?

Bagian berjudul “Berapa besar jejak dependensi yang ditambahkan?”

Saya belum mengukur secara baru-baru ini, tetapi saya memperkirakan pustaka push code akan menambahkan kurang dari satu megabita ke aplikasi Capacitor. Kami tahu cara membuatnya lebih kecil jika itu menjadi prioritas. Jika ukuran menjadi penghalang bagi Anda, silakan beri tahu kami!

Apakah Capgo berfungsi di iOS 18.4 Simulator?

Bagian berjudul “Apakah Capgo berfungsi di Simulator iOS 18.4?”

Tidak. Karena masalah upstream yang memengaruhi Simulator iOS 18.4, Capgo tidak berjalan dengan andal di sana. Silakan uji pada perangkat asli atau gunakan versi simulator iOS yang berbeda.

Lihat detail di masalah React Native: facebook/react-native#50510

Apakah push code berfungsi untuk aplikasi besar?

Bagian berjudul “Apakah push code berfungsi dengan aplikasi besar?”

Ya. Tidak ada batasan ukuran aplikasi yang dapat diperbarui dengan push code. Seperti yang disebutkan di bawah, Capgo dapat mengubah code JS apa pun di aplikasi Anda terlepas dari ukurannya.

Perlu dicatat: Ukuran yang lebih besar membuat unduhan update lebih sulit bagi pengguna. Kami merekomendasikan untuk menjaga aplikasi Anda sekecil mungkin.

Kami telah melihat berbagai penggunaan, termasuk:

  • Perbaikan darurat untuk aplikasi produksi.
  • Mengirim perbaikan bug ke pengguna pada versi lama aplikasi Anda.
  • Rilis terus-menerus (misalnya, setiap jam).

Perlu dicatat bahwa sebagian besar toko aplikasi melarang pengiriman code yang mengubah perilaku aplikasi secara signifikan. Silakan lihat di bawah untuk informasi lebih lanjut.

Apa yang dihitung sebagai “MAU” untuk Capgo?

Bagian berjudul “Apa yang dihitung sebagai ‘MAU’ untuk Capgo?”

MAU adalah Monthly Active Device. Perangkat unik yang menghubungi Capgo dalam periode rolling 30 hari dihitung sebagai satu MAU untuk native app ID tersebut. Perangkat fisik yang sama yang dipakai dengan dua native app ID berbeda dihitung sekali untuk tiap app ID; tidak dideduplikasi antar keduanya.

Jika flavour Anda hanya berbeda pada web layer atau routing update, gunakan satu native app ID dengan channel. Ini menjaga flavour tetap di bawah satu aplikasi Capgo dan membuat rilis lebih sederhana. Gunakan native app ID terpisah jika flavour membutuhkan bundle ID, signing identity, set entitlement, atau listing store yang berbeda.

Di iOS, v7.25.0+ mempertahankan device ID acak yang app-scoped setelah reinstall normal menggunakan Keychain. Di Android, gunakan v7.50.1+ (atau v5.50.1+ dan v6.50.1+ pada release line tersebut); ID hanya dipulihkan jika Android Backup/Restore menyimpan preferensi aplikasi. Menonaktifkan backup, mengecualikan preferensi tersebut, atau menghapus data aplikasi akan menghasilkan device ID baru. Memperbarui aplikasi tidak membuat device ID baru.

Untuk build test dan development, matikan pengiriman development-build dan emulator pada channel produksi. Ini mengontrol pengiriman, bukan MAU: perangkat tetap bisa dihitung saat menghubungi Capgo. Untuk mengeluarkannya dari penggunaan produksi, nonaktifkan live updates dan jangan panggil endpoint produksi Capgo. Lihat Uji Native Build Tanpa Live Updates untuk pengaturan yang tepat.

Apa yang tidak bisa kami gunakan Capgo code push untuk?

Bagian berjudul “Apa yang tidak bisa kami gunakan Capgo code push untuk?”

Capgo tidak dapat mengubah code native seperti Java, Kotlin, Objective-C, Swift, plugin native, atau konfigurasi native. Perubahan tersebut memerlukan rilis aplikasi native baru. Untuk cakupan tinjauan toko, lihat Kebijakan App Store dan Google Play.

Tidak. Aturan singkat: Capgo dapat mengirim folder build web yang dihasilkan, termasuk HTML, CSS, JavaScript, aset, dan perubahan paket pure-JavaScript yang dibundel ke dalam output tersebut. Perubahan pada capacitor.config.ts, konfigurasi plugin native, instalasi atau peningkatan paket native, dan apa pun yang harus memperbarui proyek iOS atau Android melalui npx cap sync atau npx cap copy memerlukan rilis aplikasi native.

File konfigurasi Capacitor dibaca saat build native dan dikompilasi ke dalam biner aplikasi native. Jika Anda perlu mengubah konfigurasi Capacitor Anda, Anda harus:

  1. Update capacitor.config.ts secara lokal
  2. Build ulang aplikasi native Anda (npx cap sync diikuti dengan native build)
  3. Kirim binary baru ke app store

Capgo Build dapat mengompilasi dan menandatangani proyek native iOS atau Android yang sudah disiapkan, dan, jika dikonfigurasi, mengirim hasil yang ditandatangani ke App Store Connect atau Google Play. Anda bisa tetap memakai CI yang sudah ada untuk dependensi privat, web build, Capacitor sync, dan persiapan native kustom; Capgo menerima proyek native yang sudah disiapkan untuk tahap native build.

Lihat Build Capgo dan referensi konfigurasi build untuk opsi workflow dan pengiriman ke store.

Apa yang disimpan Capgo di disk dan di mana?

Bagian berjudul “Apa yang disimpan Capgo di disk dan di mana?”

Updater Capgo (disertakan dalam aplikasi Anda saat Anda build aplikasi) meng-cache bundle terbaru yang diunduh di satu-satunya direktori yang diizinkan capacitor untuk memuat code. Di Android, ini terletak di /data/user/0/com.example.app/code_cache/capgo_updater meskipun base dari path tersebut disediakan oleh sistem Android dan bisa berubah secara dinamis saat runtime. Di perangkat iOS, data disimpan di bawah Library/Application Support/capgo.

Tool command line Capgo (misalnya npx @capgo/cli@latest bundle upload) diinstal di disk dalam cache npm, login Anda disimpan di direktori home di ~/.capgo.

Apa hubungannya dengan Capacitor Hot Reload?

Bagian berjudul “Apa hubungannya dengan Capacitor Hot Reload?”

Hot reload Capacitor hanya fitur saat pengembangan. Push Code untuk produksi.

Hot reload adalah fitur Capacitor yang memungkinkan Anda mengubah code di perangkat selama pengembangan. Ini memerlukan build aplikasi Capacitor dengan proxy untuk terhubung ke mesin lokal Anda.

Code push adalah fitur yang memungkinkan Anda mengubah code pada perangkat di produksi. Kami akan memakai berbagai teknik berbeda untuk mewujudkannya, tergantung platform.

Jenis perubahan apa saja yang didukung oleh Capgo code push?

Bagian berjudul “Jenis perubahan apa saja yang didukung oleh Capgo code push?”

Capgo dapat mengubah JS code apa pun di aplikasi Anda. Ini termasuk code aplikasi dan code yang dihasilkan. Anda juga bisa memperbarui dependencies di package.json selama tidak memerlukan perubahan native code.

Kami tidak berencana mendukung perubahan native code (misalnya Java/Kotlin di Android atau Objective-C/Swift di iOS), dan tool akan memberi peringatan jika mendeteksi perubahan native code karena tidak akan disertakan dalam bundle.

Code push tidak diperlukan untuk web karena web sudah bekerja seperti ini. Saat pengguna membuka web app, ia akan mengunduh versi terbaru dari server jika diperlukan.

Jika Anda memiliki use case untuk code push dengan web, beri tahu kami!

Apakah ini bisa jalan di iOS, Android, Mac, Windows, Linux, dll?

Bagian berjudul “Apakah ini bisa jalan di iOS, Android, Mac, Windows, Linux, dll?”

Ya.

Sejauh ini kami fokus pada dukungan Android, iOS, dan Electron, dan push code sudah siap produksi di ketiganya.

Capgo mendukung versi Android yang sama dengan yang didukung Capacitor.

Saat ini Capacitor mendukung Android API level 22+ dan iOS 13.0+: https://capacitorjs.com/docs/main/reference/support-policy

Versi Capacitor apa saja yang didukung Capgo?

Bagian berjudul “Versi Capacitor apa saja yang didukung Capgo?”

Capgo saat ini hanya mendukung rilis stabil terbaru dari Capacitor. Kami bisa saja mendukung versi Capacitor yang lebih lama, hanya saja kami belum membangun infrastruktur yang diperlukan untuk memeliharanya seiring waktu. Kami berencana mendukung lebih banyak versi Capacitor ke depannya, termasuk versi apa pun untuk pelanggan enterprise kami. https://github.com/Cap-go/capgo/issues/1100

Capgo memantau versi stabil Capacitor dan biasanya melakukan update dalam beberapa jam setelah rilis stabil. Sistem kami untuk melakukan update ini sudah otomatis dan hanya butuh beberapa menit untuk berjalan. Kami lalu melakukan verifikasi manual tambahan sebelum mempublikasikannya ke server kami.

Bagaimana kaitannya dengan proses review atau kebijakan App/Play Store?

Bagian berjudul “Bagaimana kaitannya dengan proses review atau kebijakan App/Play Store?”

Capgo hanya mengirimkan perubahan ke layer web Capacitor: HTML, CSS, JavaScript, dan aset yang sudah berjalan di WebView aplikasi. Ini tidak mengubah native binary, native plugins, permissions, entitlements, signing, atau metadata store.

Gunakan rilis store native untuk setiap perubahan native dan perubahan material yang bisa memengaruhi tujuan atau fungsionalitas aplikasi yang telah direview. Pastikan live updates tetap berada dalam pengalaman aplikasi yang Anda ajukan dan sampaikan ke pengguna.

Apakah Capgo bisa menyebabkan Apple menolak eksekusi code secara remote?

Bagian berjudul “Apakah Capgo bisa menyebabkan penolakan Apple terkait eksekusi code jarak jauh?”

Tidak. Hal itu tidak mungkin. Capgo tidak menginstal atau mengeksekusi native code, dynamic library, framework, atau plugin, dan tidak bisa memanggil dlopen, dlsym, performSelector:, atau method_exchangeImplementations(). Ia hanya mengganti JavaScript, HTML, CSS, dan aset statis di dalam WebView atau engine JavaScriptCore yang sudah dikompilasi ke dalam binary yang ditinjau.

Saat App Review mengutip Guideline 2.5.2 atau “remote code execution”, jangan anggap Capgo sebagai penyebabnya. Baca pemberitahuan review, lalu periksa proyek native dan SDK lain untuk pemuatan executable atau penggunaan private-API. Catatan review sebelumnya tentang dynamic linking pada jalur auto-hide splash-screen Capgo adalah bug pada plugin native tersebut, bukan live updates, dan link tersebut telah dihapus.

Apakah penegakan eksekusi code jarak jauh oleh Apple memengaruhi Capgo?

Bagian berjudul “Apakah penegakan eksekusi code jarak jauh oleh Apple memengaruhi Capgo?”

Tidak. Capgo tidak bisa menyebabkan penolakan karena eksekusi code jarak jauh. Lihat Apakah Capgo bisa menyebabkan Apple menolak eksekusi code secara remote?. Capgo dibuat untuk layer web terinterpretasi pada aplikasi Capacitor. Ia tidak menginstal atau mengeksekusi native code setelah review. Apple tetap meninjau setiap aplikasi berdasarkan fakta masing-masing, dan Capgo tidak dapat menjamin hasilnya.

Halaman Pedoman App Review 2.5.2 menyatakan bahwa aplikasi tidak boleh “mengunduh, menginstal, atau menjalankan code yang menambahkan atau mengubah fitur atau fungsi aplikasi.” Tim review mengutip aturan itu, bersama dengan Apple Developer Program License Agreement bagian 3.3.1(B) mengenai code yang dapat dieksekusi, ketika mereka menolak aplikasi yang menggunakan resource remote untuk mengubah perilaku setelah disetujui. Contoh umumnya meliputi dlopen, dlsym, performSelector:, atau script remote yang mengakses API privat.

Perjanjian lisensi yang sama mengizinkan code yang diinterpretasikan untuk diunduh jika:

  • tidak mengubah tujuan utama aplikasi,
  • tidak melewati signing, sandbox, atau fitur keamanan OS lainnya, dan
  • tidak membuat store atau storefront untuk aplikasi lain.

Bagian 3.3.1(C) secara terpisah membatasi penyediaan, pembukaan kunci, atau pengaktifan fitur atau fungsionalitas tambahan melalui mekanisme distribusi selain App Store, Custom App Distribution, atau TestFlight, kecuali Apple memberikan persetujuan tertulis sebelumnya atau aktivitas tersebut diizinkan berdasarkan pasal 3.3.9(A) (In-App Purchase API). Bagaimana klausul tersebut berlaku pada OTA bundle interpreted-code tertentu adalah pertanyaan hukum bagi tim dan penasihat hukum Anda.

Capgo menggantikan JavaScript, HTML, CSS, dan aset statis yang sudah berjalan di dalam WebView atau engine JavaScriptCore aplikasi Anda. Ini tidak mengirimkan binary native, machine code, dynamic library, atau plugin. Panduan 4.7 (diperjelas dalam November 2025) berlaku saat aplikasi Anda menawarkan mini app HTML5 dan JavaScript, mini game, chatbot, plug-in, atau software serupa yang tidak tertanam dalam binary. Jika pengguna dapat menjelajahi atau menjalankan beberapa pengalaman software berbeda dari dalam aplikasi, tinjau persyaratan tambahan 4.7 bersama penasihat hukum. Satu produk yang memperbarui web bundle miliknya sendiri melalui channel adalah pengalaman pengguna yang berbeda, tetapi hanya Apple yang menentukan apakah metadata Anda sesuai dengan deskripsi tersebut.

Kirim kemampuan native, permission, entitlement, dan perubahan fungsionalitas yang signifikan melalui binary App Store normal. Gunakan Capgo untuk perbaikan dan peningkatan layer web yang tetap berada di dalam aplikasi yang Anda kirimkan. Lihat Eksekusi code jarak jauh Apple dan Capgo untuk rincian kepatuhan yang lebih lengkap, atau panduan blog untuk Guideline 2.5.2, ADPLA 3.3.1(B), dan klarifikasi Guideline 4.7 tahun 2025.

Apakah Capgo menjamin persetujuan App Store atau Google Play?

Bagian berjudul “Apakah Capgo menjamin persetujuan App Store atau Google Play?”

Tidak. Apple dan Google meninjau setiap aplikasi dan rilis berdasarkan fakta masing-masing, dan Capgo tidak dapat menjamin hasil persetujuan atau peninjauan individu. Tim Anda tetap bertanggung jawab atas konten aplikasi, pengungkapan, cakupan pembaruan, dan kepatuhan terhadap kebijakan store yang berlaku.

Untuk perencanaan peninjauan dan rilis, baca kebijakan resmi secara langsung: Panduan Review Apple App Store dan Kebijakan Penyalahgunaan Perangkat dan Jaringan Google Play.

Bisakah saya menggunakan Capgo di negara saya?

Bagian berjudul “Bisakah saya menggunakan Capgo di negara saya?”

Kami tidak pernah berupaya membatasi akses ke Capgo dari negara mana pun.

Kami menyadari bahwa beberapa negara membatasi URL apa saja yang bisa diakses dari dalam negeri. Capgo saat ini menggunakan Cloudflare Cloud untuk hosting, termasuk R2 Storage dan Cloudflare workers.

URL berikut digunakan oleh Capgo:

  • https://api.capgo.app — digunakan oleh npx @capgo/cli command line tools untuk berinteraksi dengan server Capgo serta Capgo updater di perangkat pengguna untuk mengecek update.
  • https://*.r2.cloudflarestorage.com — digunakan oleh npx @capgo/cli command line tool untuk upload dan download bundle

Jika semua URL tersebut dapat diakses dari negara Anda, maka Capgo seharusnya bisa berfungsi.

Jika wilayah Anda memerlukan pemblokiran akses ke salah satu URL tersebut, beri tahu kami dan kami dapat bekerja sama untuk menemukan solusi. Server proxy adalah salah satu opsi.

Ya. Enterprise mendukung deployment Capgo self-hosted berlisensi ketika Anda perlu menjalankan backend updater di infrastruktur Anda sendiri. Lihat Updater Self-Hosted untuk model deployment dan endpoint.

Apakah code push memerlukan internet untuk berfungsi?

Bagian berjudul “Apakah code push memerlukan internet untuk berfungsi?”

Ya. Bisa dibayangkan menjalankan server untuk mendistribusikan update secara terpisah dari internet umum, tetapi beberapa bentuk konektivitas jaringan diperlukan untuk mentransfer update ke perangkat.

Bagaimana Capgo terpengaruh oleh kurangnya konektivitas jaringan?

Bagian berjudul “Bagaimana Capgo terpengaruh oleh hilangnya konektivitas jaringan?”

Updater Capgo (termasuk dalam aplikasi Anda saat Anda build app dengan Capgo) dirancang agar tahan terhadap masalah konektivitas jaringan.

Dalam perilaku update default, saat aplikasi diluncurkan, ia memberi tahu updater Capgo, yang kemudian membuat thread terpisah untuk melakukan permintaan jaringan ke server Capgo dan meminta update. Kami sengaja menggunakan thread terpisah untuk menghindari memblokir aktivitas lain yang mungkin sedang dilakukan aplikasi. Jika permintaan jaringan gagal atau timeout, updater akan mencoba memeriksa lagi saat aplikasi diluncurkan berikutnya.

Perintah baris Capgo (mis. npx @capgo/cli@latest bundle upload) membutuhkan koneksi jaringan untuk berfungsi. Jika Anda menggunakan Capgo untuk mendistribusikan aplikasi Anda, pastikan sistem CI Anda memiliki koneksi jaringan.

Apa yang terjadi jika pengguna tidak melakukan update dalam waktu lama dan melewatkan update?

Bagian berjudul “Apa yang terjadi jika pengguna tidak melakukan update dalam waktu lama dan melewatkan update?”

Implementasi kami selalu mengirim update yang disesuaikan khusus untuk perangkat yang memintanya, selalu memperbarui peminta ke versi terbaru yang tersedia. Jadi, jika pengguna tidak melakukan update untuk sementara waktu, mereka akan “melewatkan” update perantara.

Server update dapat diubah untuk mendukung respons dengan versi incremental berikutnya atau versi terbaru, tergantung kebutuhan aplikasi Anda. Beri tahu kami jika perilaku update alternatif penting bagi Anda.

Capgo adalah plugin untuk Capacitor yang menambahkan code push. Capgo bukan pengganti Capacitor. Anda dapat terus menggunakan tooling Capacitor yang sudah Anda kenal dan sukai.

Kami melacak rilis stabil terbaru dari Capacitor dan memperbarui plugin code push kami agar kompatibel dengannya.

Secara default, updater Capgo memeriksa update saat aplikasi dimulai. Ini berjalan di thread latar belakang dan tidak memblokir thread UI. Update apa pun akan diinstal saat pengguna menggunakan aplikasi dan akan diterapkan saat aplikasi dimulai ulang berikutnya.

Juga dimungkinkan untuk menjalankan updater Capgo secara manual menggunakan @capgo/capacitor-updater package, yang memungkinkan pemicuan update kapan saja, termasuk melalui push notification.

Updater Capgo dirancang agar saat jaringan tidak tersedia, atau server sedang down atau tidak dapat dijangkau, aplikasi akan tetap berjalan normal. Jika Anda memilih untuk menghapus update dari server kami, semua client Anda akan tetap berjalan seperti biasa.

Kami telah menambahkan kemampuan untuk melakukan rollback patch. Cara paling sederhana adalah melampirkan bundle sebelumnya ke channel Anda untuk membatalkannya.

Tidak. app_id sudah termasuk dalam aplikasi Anda dan aman untuk dipublikasikan. Anda bisa memasukkannya ke version control (bahkan secara publik) tanpa perlu khawatir orang lain mengaksesnya.

Seseorang yang memiliki app_id dapat mengambil versi terbaru aplikasi Anda dari server Capgo, tetapi mereka tidak bisa melakukan push update ke aplikasi Anda atau mengakses aspek lain dari akun Capgo Anda.

Inventaris data lengkap, perilaku endpoint, dan kontrol privasi didokumentasikan di Kepatuhan.

Atur statsUrl: '' untuk menonaktifkan laporan statistik updater eksplisit. Anda juga bisa mengirim statsUrl ke proxy atau endpoint yang Anda kontrol; lihat cara menangani statistik di infrastruktur self-hosted. Pengecekan update tetap memerlukan pengenal perangkat per-app agar Capgo bisa memilih update yang tepat dan mengukur perangkat aktif bulanan.

Panduan daftar sub-processor adalah sumber acuan publik terbaru kami untuk penyedia, lokasi pemrosesan, mekanisme transfer, dan riwayat perubahan.

Bisakah saya menggunakan Capgo untuk aplikasi sensitif HIPAA?

Bagian berjudul “Bisakah saya menggunakan Capgo untuk aplikasi sensitif HIPAA?”

Ya, tetapi penanggung jawab kepatuhan Anda perlu memilih model deployment yang tepat. Capgo Cloud saat ini tidak diposisikan sebagai pemroses statistik terkelola yang memenuhi HIPAA. Secara default, data updater dibatasi per perangkat dan tidak terikat ke pengguna aplikasi tertentu, dan banyak tim sukses memakai model itu.

Untuk review yang lebih ketat, Anda bisa membatasi trafik plugin secara geografis, menonaktifkan statistik dengan mengatur statsUrl ke string kosong, self-host hanya endpoint statistik, atau memakai self-hosting berlisensi. Jangan memanggil CapacitorUpdater.setCustomId(...) dengan email, user ID, patient ID, employee ID, atau nilai apa pun yang memetakan telemetri updater kembali ke seseorang.

Lihat Kepatuhan HIPAA untuk setup teknis lengkap dan tradeoff observability saat statistik dinonaktifkan.

Bisakah saya menyimpan data Capgo live update di Eropa?

Bagian berjudul “Bisakah saya menyimpan data Capgo live update di Eropa?”

Ya. Aplikasi yang membutuhkan data residency UE untuk trafik plugin Capgo Cloud dapat mengatur endpoint updater ke host UE:

  • updateUrl: https://plugin.eu.capgo.app/updates
  • statsUrl: https://plugin.eu.capgo.app/stats
  • channelUrl: https://plugin.eu.capgo.app/channel_self

Gunakan ketiga URL EU tersebut bersama-sama agar pengecekan update, statistik, dan penugasan channel otomatis menggunakan jalur data regional yang sama. Karena nilai-nilai ini berada di capacitor.config.ts, aplikasi mobile produksi memerlukan rilis native sebelum instalasi yang ada menggunakan endpoint baru.

Lihat Lokasi Data untuk contoh Capacitor dan Electron yang tepat.

Platform apa saja yang didukung oleh Capgo?

Bagian berjudul “Platform apa yang didukung Capgo?”

Saat ini, Capgo mendukung Android, iOS, dan Electron. Semuanya siap untuk produksi.

Penggunaan Capgo untuk iOS, Android, atau Electron dapat menjadi keputusan yang independen. Anda dapat mengatur strategi channel untuk Android dan ipa yang dibangun untuk App Store, atau channel Electron, sesuai kebutuhan.

Capgo dapat (dengan relatif mudah) dibuat untuk mendukung target desktop atau embedded. Jika hal ini penting bagi Anda, silakan beri tahu kami.

Bagaimana Capgo berinteraksi dengan Play Testing Tracks atau Apple TestFlight?

Bagian berjudul “Bagaimana Capgo berinteraksi dengan Play Testing Tracks atau Apple TestFlight?”

Setiap app store punya mekanisme tersendiri untuk mendistribusikan aplikasi ke grup pengguna terbatas (misalnya “internal testing”, “closed beta”, dan lain-lain). Semua ini adalah mekanisme untuk mensegmentasi pengguna ke dalam grup dan mendistribusikan versi aplikasi tertentu ke masing-masing grup.

Sayangnya, tidak semua mekanisme ini memungkinkan pihak ketiga mendeteksi kapan aplikasi diinstal di Test Track tertentu atau lewat TestFlight. Jadi kami tidak punya visibilitas yang andal atas komposisi grup-grup ini, dan tidak bisa membatasi akses ke patch Capgo berdasarkan grup tersebut secara akurat. https://stackoverflow.com/questions/53291007/can-an-android-application-identify-the-test-track-within-google-play https://stackoverflow.com/questions/26081543/how-to-tell-at-runtime-whether-an-ios-app-is-running-through-a-testflight-beta-i

Jika Anda ingin mensegmentasi ketersediaan bundle Capgo, ada 4 opsi yang bisa dipilih:

  1. Gunakan channel terpisah untuk setiap grup. Ini pendekatan paling sederhana, tapi mengharuskan Anda mengelola beberapa channel. Anda mungkin sudah punya dev channel dan prod channel dengan ketersediaan berbeda. Dengan begitu, Anda bisa update dev channel, verifikasi, lalu update prod channel secara terpisah. Kami menyarankan penggunaan branch / tag di version control untuk membantu melacak sumber yang terkait dengan setiap release.
  2. Lacak set pengguna opt-in Anda sendiri, nonaktifkan pembaruan otomatis, dan picu pembaruan hanya untuk pengguna tertentu melalui @capgo/capacitor-updater package. Ini sudah berfungsi sekarang, tetapi mengharuskan Anda mengelola daftar opt-in Anda sendiri.
  3. Capgo memungkinkan Anda membuat mekanisme opt-in sendiri per perangkat (mirip Test Tracks atau TestFlight, hanya saja platform-agnostic). Ini memungkinkan tim QA Anda opt-in ke bundle sebelum dipromosikan ke pengguna umum.
  4. Gunakan rollout progresif untuk mengirimkan bundle kandidat ke subset acak dan sticky dari sebuah channel. Atur rollout dari 0–100%, atau gunakan --rollout-percentage-bps untuk increment 0,01%; atur durasi cache dari 60 detik hingga 365 hari dan kebijakan auto-pause opsional. Ini tidak memilih grup perangkat bernama.

Bagaimana cara upgrade atau downgrade paket saya?

Bagian berjudul “Bagaimana cara upgrade atau downgrade plan saya?”

Anda dapat upgrade atau downgrade plan kapan saja di dashboard: https://console.capgo.app/settings/organization/plans. Upgrade langsung berlaku. Downgrade berlaku di akhir siklus penagihan Anda saat ini.

Apa yang terjadi jika saya mencapai batas MAU?

Bagian berjudul “Apa yang terjadi jika saya mencapai limit MAU?”

Capgo mengirim email ke Anda saat MAU mencapai 50%, 70%, 90%, dan 100% dari limit. Setelah limit tercapai, update live diblokir sampai akhir siklus penagihan. Upgrade ke plan yang lebih tinggi atau beli kredit untuk melanjutkan pengiriman update. Lihat harga Capgo dan pricing.md untuk tier plan.

Apakah Anda menawarkan pengembalian dana?

Section titled “Do you offer refunds?”

Kecuali diwajibkan oleh hukum, biaya langganan yang telah dibayar tidak dapat dikembalikan. Permintaan pengembalian dana tertentu dapat dipertimbangkan secara kasus per kasus atas kebijaksanaan Capgo semata. Hubungi dukungan jika Anda yakin memenuhi syarat.

Periode penagihan direset otomatis setiap bulan pada tanggal Anda pertama kali berlangganan Capgo. Misalnya, jika Anda berlangganan pada tanggal 15, periode penagihan Anda akan direset pada tanggal 15 setiap bulan.

Anda dapat membatalkan langganan kapan saja di dashboard Anda: https://console.capgo.app/settings/organization/plans

Ya. Anda dapat memilih penagihan tahunan di pengaturan rencana organisasi Anda.

Apa saja yang dihitung sebagai storage, dan bisakah kami mengubah masa retensi?

Bagian berjudul “Apa yang dihitung ke dalam penyimpanan, dan bisakah kami mengubah retensi?”

Penyimpanan mencakup bundle historis yang dipertahankan dan aset Delta mereka di seluruh channel Anda. Anda mengontrol retensi bundle yang tidak digunakan untuk setiap aplikasi di App Settings. Bundle yang terhubung ke channel atau rollout aktif tetap dilindungi agar tetap tersedia untuk pengiriman dan rollback.

Apakah replikasi regional melipatgandakan storage atau bandwidth?

Bagian berjudul “Apakah replikasi regional menggandakan penyimpanan atau bandwidth?”

Tidak. Sebuah bundle dihitung sekali untuk penyimpanan, terlepas dari region yang melayaninya. Bandwidth juga tidak digandakan oleh region: lihat Bagaimana bandwidth dihitung?.

Bandwidth hanya menghitung file yang benar-benar diunduh perangkat dari Capgo:

  • Pembaruan delta: ketika Anda upload dengan --delta, perangkat hanya mengunduh file yang berubah sejak versi yang sudah dimilikinya. Hanya file tersebut yang dihitung. File yang tidak berubah, seperti gambar besar atau font, tidak diunduh lagi dan tidak dikenakan biaya. Lihat Update Delta.
  • Cache edge: jika file yang diminta atau full zip sudah di-cache di edge, download tersebut tidak dihitung ke bandwidth Anda. Ini berlaku untuk Delta files maupun full zips.
  • Unduhan yang dilanjutkan: Jika download terputus, perangkat akan melanjutkan dari titik di mana ia berhenti. Bagian yang sudah diunduh tidak akan diunduh atau dihitung ulang.
  • Zip lengkap: bundles yang diunggah tanpa --delta, atau perangkat pada versi plugin tanpa dukungan Delta, akan mengunduh full zip. Ini hanya dihitung jika tidak disajikan dari edge cache.

Untuk menjaga bandwidth tetap rendah, unggah dengan --delta dan simpan aset besar yang jarang berubah di path file yang stabil.

Enterprise mencakup komitmen ketersediaan bulanan 99,9% untuk platform produksi. Jika komitmen itu tidak terpenuhi, jadwal service credit adalah 10% hingga 30% berdasarkan ketersediaan bulanan. Target awal respons dukungan adalah P1: satu jam, 24/7/365; P2: dua jam kerja; P3: satu hari kerja; dan P4: dua hari kerja. Baca SLA Enterprise untuk ketentuan selengkapnya.

Statistik di dashboard Anda diperbarui setiap tengah malam UTC.\nStatistik dihitung dari data unik MAU unik yang aktif selama periode 30 hari terakhir.

Device ID dibuat di perangkat saat pertama kali dijalankan, dan digunakan untuk menghindari duplikasi instalasi per perangkat serta memungkinkan kami menagih berdasarkan pengguna yang menginstal (misalnya monthly active users), bukan berdasarkan total patch atau total instalasi patch.

MAU adalah solusi yang lebih baik daripada jumlah instalasi untuk menetapkan harga Capgo, karena lebih akurat dan mencerminkan biaya aktual Capgo per perangkat.

Persistensi Device-ID:

  • iOS: Mulai v7.25.0+, device ID disimpan di Keychain dan tetap ada meskipun aplikasi diinstal ulang secara normal.
  • Android: Gunakan v7.50.1+ (atau v5.50.1+/v6.50.1+ pada lini rilis tersebut). Device ID hanya akan dipulihkan jika Android Backup/Restore menyimpan preferensi aplikasi.
  • Electron: Device ID disimpan di secure storage.
  • Catatan Android: Menonaktifkan backup, mengecualikan preferensi terkait, atau menghapus data aplikasi akan menghasilkan device ID baru. Android v7.25.0 hingga v7.50.0 dapat menghasilkan device ID baru setelah instalasi ulang meskipun backup diaktifkan.

Device ID bersifat app-scoped dan mendukung pengiriman live update serta de-duplikasi MAU; ini bukan identifier untuk iklan atau pelacakan lintas-app.

Device ID akan terdaftar setelah app melakukan check-in ke Capgo melalui endpoint updater atau stats. Device tidak perlu menginstal patch untuk muncul di daftar device.

Mengapa jumlah device saya berbeda dengan MAU saya?

Bagian berjudul “Mengapa jumlah device saya berbeda dengan MAU saya?”

Daftar device dan MAU berbasis sinyal yang berbeda.

Daftar device menampilkan metadata terbaru yang diketahui untuk setiap device, seperti device ID, platform, versi plugin, versi OS, versi native, channel, bundle yang terinstal, dan negara request jika tersedia. Negara request adalah code dua huruf valid terbaru yang diterima dari request yang ditangani Cloudflare untuk device tersebut, bukan lokasi dari GPS atau yang disediakan app. Request tanpa negara yang valid tidak akan menghapus nilai valid terakhir. Capgo memperbarui metadata ini saat app melakukan check-in, tetapi check-in berulang dengan metadata yang sama mungkin tidak mengubah baris atau waktu update terakhirnya.

MAU menghitung jumlah device aktif yang unik selama periode billing. Aktivitas tersebut bisa meningkat meskipun metadata device tetap sama, sehingga jumlah device dan MAU bisa berbeda.

Bagaimana cara membuat update yang berbeda tiap platform?

Bagian berjudul “Bagaimana cara membuat update yang berbeda tiap platform?”

Anda dapat membuat channel untuk setiap platform dan menonaktifkan pembaruan spesifik platform di masing-masing channel.

Di channel ios, nonaktifkan pembaruan android, dan di channel android, nonaktifkan pembaruan ios.

Lalu upload bundle ke masing-masing channel untuk memiliki pembaruan berbeda di setiap platform.

Jika Anda perlu memiliki pembaruan yang sama untuk kedua platform, Anda dapat mengaitkan satu bundle ke beberapa channel. Tidak perlu menduplikasi bundle.

Jika Anda menggunakan FAQ untuk merencanakan pengiriman live update, hubungkan dengan Live Updates Capgo untuk alur kerja produk di Capgo Live Updates, Ikhtisar untuk detail implementasi di Overview, Fitur untuk detail implementasi di Features, Perilaku Update untuk detail implementasi di Update Behavior, dan Tipe Update untuk detail implementasi di Update Types.