Kata Pengantar
Saat Anda mulai menikmati sistem update dari Capgo, seperti saya pada aplikasi saya, Anda akan mulai berpikir, “Bagaimana jika saya ingin fitur lebih?”
Saya pun merasakan hal yang sama, tapi karena saya pembuat Capgo, saya bisa langsung mengeceknya!
Karena semuanya open-source, Anda pun punya kekuatan ini :)
Masalah berikutnya dalam proses distribusi aplikasi Capacitor adalah saat harus meminta rekan tim lain untuk mengetes update!
Dengan TestFlight, masalahnya sederhana: mengajak orang masuk ke tim Anda dan membuat mereka paham cara mendapatkannya memakan banyak waktu!
Dan tentu saja, setiap kali kirim ke Apple, ada proses review acak oleh bot yang bisa memakan waktu 5 menit atau 5 jam, tidak ada yang tahu pasti.
Sudah berkali-kali presentasi saya tertunda karena hal ini...
Dan untuk Google ini bahkan lebih parah, misteri terbesar dalam hidup saya: rilis versi production butuh kurang dari 2 jam, tapi rilis closed beta butuh 1–2 hari.
Solusi
Untuk mengatasinya, saya membuat sistem Channel di Capgo.
npx @capgo/cli@latest bundle upload -c production akan update ke semua user (jika channel production diset ke default)
If you do npx @capgo/cli@latest bundle upload -c development maka versi tersebut masuk ke channel berbeda, ini bisa diotomatisasi di action GitHub.
Lalu Anda punya 2 cara agar user bisa mendapatkan update dari channel tersebut
Cara super otomatis
Ini bisa sangat berguna jika Anda tidak ingin membuat backend sendiri untuk pengaturan channel, karena cara ini sangat cepat untuk diimplementasikan.
Dengan itu, satu-satunya hal yang perlu Anda lakukan adalah mengizinkan salah satu channel Anda untuk diatur ke self.

Lalu tambahkan ini di code aplikasi Ionic Anda. Untuk pengalaman terbaik, gunakan ini setelah user mengklik tombol seperti “daftar beta”.
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })
Cara manual
Ini berguna untuk tim internal Anda dan cepat diimplementasikan. Izinkan user menyalin deviceID dari aplikasi dan mengirimkannya ke Anda secara manual, code ini akan membantu Anda:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Sembunyikan tombol di suatu tempat di aplikasi Anda, atau tampilkan tombol hanya untuk user yang terhubung dengan admin role, misalnya.
Kemudian buka web app atau native app Capgo, login sebagai admin app, pilih aplikasi Anda, lalu klik daftar device.
Masukkan deviceID di search bar, klik device yang ditemukan, lalu klik link Channel dan pilih development, minta rekan tim Anda membuka kembali aplikasi, tunggu 30 detik, lalu buka-tutup aplikasi.
Dia seharusnya mendapatkan versi Anda.
Cara otomatis
Ini bisa berguna untuk beta tester Anda, tapi implementasinya lebih lama.
Sama seperti cara manual, Anda harus mengambil deviceID
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Tapi kali ini Anda harus mengirimkannya secara otomatis ke backend Anda, dan saya bebaskan Anda untuk menentukan caranya.
Saran saya, simpan saja di database agar lebih memudahkan Anda nantinya.
Kemudian di backend Anda, Anda juga harus mengirimkannya ke backend Capgo. Berikut adalah dua contoh code:
NodeJS
import axios from 'axios'
await axios.post('https://api.capgo.app/device', {
app_id: 'YOUR_APP_ID',
device_id: 'DEVICE_ID',
channel: 'CHANNEL_NAME', // The name of the channel, or undefined if version_id provided
version_id: 'VERSION_NAME' // this is optional, if provide it will override the channel, that useful when you want to debug only one user.
}, {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
Cloudflare
addEventListener('fetch', (event) => {
event.respondWith(
handleRequest(event.request).catch(
err => new Response(err.stack, { status: 500 })
)
)
})
async function handleRequest(request) {
const { pathname, method } = new URL(request.url)
const body = await request.json()
const newBody = JSON.stringify({
app_id: 'YOUR_APP_ID',
device_id: body.device_id,
channel: 'alpha'
})
const newUrl = new URL('https://api.capgo.app/device')
const options = {
headers: {
authorization: 'YOUR_API_KEY',
},
method: 'POST',
body: newBody
}
if (request.method === 'DELETE') {
// DELETE the channel link
options.method = 'DELETE'
return fetch(newUrl.toString(), options)
}
return fetch(newUrl.toString(), options)
}
Cukup kirim device_id di body ke URL yang sudah di-deploy dengan metode POST untuk menambah dan metode DELETE untuk menghapus.
Setelah dikonfigurasi, coba tambahkan tombol di app Anda untuk opt in ke channel, lalu cek di web app apakah sudah terpasang.
Anda juga bisa mengirim null untuk menghapus override
Jika Anda perlu mengecek secara programatik override apa yang disetel pada perangkat, Anda bisa mendapatkannya di URL yang sama
import axios from 'axios'
const res = await axios.get('https://api.capgo.app/device?app_id=YOUR_APP_ID&device_id=DEVICE_ID', {
headers: {
authorization: 'YOUR_API_KEY' // choose a key with 'write' or 'all' rights
}
})
console.log('data', res.json())
Lanjutkan dari Cara mengirim update spesifik ke satu user atau grup
Jika Anda menggunakan Cara kirim update spesifik ke satu user atau grup untuk merencanakan routing channel dan staged rollout, hubungkan dengan Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Solusi Beta Testing untuk workflow produk di Beta Testing Solution, dan Solusi Version Targeting untuk workflow produk di Version Targeting Solution.