Kata Pengantar
Saat Anda mulai menikmati sistem update Capgo, seperti saya dengan aplikasi saya, Anda akan mulai merasa, “Bagaimana kalau saya mau lebih?”
Saya juga merasakan hal yang sama, tapi karena saya pembuat Capgo, saya bisa langsung melihatnya!
Karena semuanya open-source, Anda juga punya kemampuan ini :)
Sakit kepala berikutnya yang saya alami dalam proses distribusi aplikasi Capacitor adalah membuat rekan tim lain menguji update-nya!
Dengan TestFlight, masalahnya sederhana: mengajak orang ke tim Anda dan membuat mereka paham cara mendapatkannya itu memakan waktu!
Dan tentu saja, setiap kali Anda mengirim ke Apple, ada proses review acak oleh bot yang bisa memakan waktu 5 menit atau 5 jam, tidak pernah bisa diprediksi.
Banyak kali presentasi saya tertunda karena ini…
Dan untuk Google ini bahkan lebih buruk, misteri terbesar dalam hidup saya, merilis versi produksi kurang dari 2 jam, tapi merilis beta tertutup butuh 1–2 hari.
Solusi
Untuk memperbaiki ini, saya membuat sistem Channel di Capgo.
npx @capgo/cli@latest bundle upload -c production akan diperbarui ke semua pengguna (jika channel production diset ke default)
Jika Anda npx @capgo/cli@latest bundle upload -c development maka versi akan masuk ke channel lain, ini bisa diotomatisasi di aksi GitHub.
Lalu Anda punya 2 cara agar pengguna mendapatkan update dari channel
Cara Super Otomatis
Ini berguna jika Anda tidak ingin membuat backend sendiri untuk set channel, implementasinya cepat.
Untuk yang satu ini, satu-satunya yang perlu Anda lakukan adalah mengizinkan salah satu channel Anda untuk diatur secara mandiri.

Lalu tambahkan ini di code aplikasi Ionic Anda, untuk pengalaman terbaik, gunakan ini setelah pengguna 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, implementasinya cepat. Izinkan pengguna menyalin deviceID mereka dari aplikasi Anda dan mengirimkannya ke Anda secara manual, code ini akan membantu Anda mendapatkannya:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Sembunyikan tombol di suatu tempat di aplikasi Anda, atau tampilkan tombol hanya untuk pengguna yang terhubung dengan admin role tertentu, misalnya.
Lalu buka aplikasi web atau aplikasi native Capgo, masuk sebagai admin aplikasi, pilih aplikasi Anda, dan klik daftar perangkat.
Lalu masukkan deviceID di bilah pencarian, klik perangkat yang ditemukan, lalu klik tautan Channel dan pilih development, minta rekan tim Anda untuk membuka aplikasi lagi, tunggu 30 detik, lalu tutup dan buka kembali.
Mereka seharusnya menerima versi Anda.
Cara otomatis
Ini bisa berguna untuk pengujian beta Anda, meskipun implementasinya lebih lama.
Sama seperti cara manual, Anda harus mendapatkan deviceID
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Tapi kali ini Anda harus mengirimkannya secara otomatis ke backend Anda. Saya biarkan Anda memutuskan cara melakukannya.
Saya hanya menyarankan Anda untuk menyimpannya di database, itu akan memudahkan pekerjaan Anda nanti.
Lalu di backend Anda, Anda juga harus mengirimkannya ke backend Capgo. Berikut 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)
}
Lalu kirim device_id Anda di body request ke URL yang sudah di-deploy menggunakan metode POST untuk menambahkan dan DELETE untuk menghapus.
Setelah konfigurasi ini selesai, coba tambahkan tombol di aplikasi Anda untuk opt-in ke channel, lalu periksa di web app apakah pengaturan tersebut sudah diterapkan.
Anda juga bisa mengirim null untuk menghapus override
Jika Anda perlu mengecek secara programatik override apa yang di-set pada perangkat, Anda bisa mengaksesnya 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 Solusi Beta Testing, dan Solusi Version Targeting untuk workflow produk di Version Targeting Solution.