Prakata
Saat Anda mulai menikmati sistem pembaruan Capgo, seperti saya untuk aplikasi saya, Anda akan mulai merasa “Apa jika saya ingin lebih?”
Saya juga merasakan hal itu, tetapi karena saya adalah pembuat Capgo, saya dapat melihatnya!
Karena semua adalah sumber terbuka, Anda memiliki kekuatan ini juga :)
Masalah berikutnya yang saya hadapi dalam proses distribusi aplikasi Capacitor adalah membuat rekan tim lainnya menguji pembaruan!
Dengan TestFlight, masalahnya sederhana, membawa orang ke dalam tim dan membuat mereka memahami cara mendapatkannya membutuhkan waktu!
Dan tentu saja, setiap kali Anda mengirimkan ke Apple Anda memiliki proses ulasan acak oleh bot yang dapat memakan waktu 5 menit atau 5 jam, Anda tidak pernah tahu.
Saya pernah mengalami penundaan presentasi saya banyak kali karena hal ini…
Dan untuk Google ini bahkan lebih buruk, misteri besar hidup saya, mengeluarkan versi produksi membutuhkan kurang dari 2 jam, tetapi mengeluarkan versi beta dekat membutuhkan 1-2 hari.
Pemecahan Masalah
Untuk memecahkan masalah ini, saya menciptakan sistem Channel di Capgo.
npx @capgo/cli@latest bundle upload -c production akan diperbarui ke semua pengguna (jika saluran produksi diatur ke default)
Jika Anda melakukan ini npx @capgo/cli@latest bundle upload -c development maka versi akan mendarat di saluran yang berbeda, ini dapat diotomatisasi dalam GitHub aksi.
Lalu Anda memiliki 2 cara untuk memungkinkan pengguna mendapatkan pembaruan dari saluran
Cara Super Otomatis
Cara ini dapat berguna ketika Anda tidak ingin membuat backend sendiri untuk pengaturan saluran, ini cepat untuk diimplementasikan.
Dengan cara ini, satu-satunya hal yang perlu Anda lakukan adalah memungkinkan salah satu saluran Anda untuk mengatur sendiri.

Dan kemudian tambahkan ini di code dari aplikasi Ionic Anda, untuk pengalaman terbaik, gunakan ini setelah pengguna menekan tombol seperti "daftar untuk beta"
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.setChannel({ channel: 'beta' })
Cara Manual
Cara ini dapat berguna untuk tim internal Anda, ini cepat untuk diimplementasikan. Izinkan pengguna untuk menyalin ID perangkat mereka dari aplikasi Anda dan kirimkannya ke Anda secara manual, code ini akan membantu Anda untuk mendapatkannya:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Tutup tombol di mana-mana di aplikasi Anda, atau hanya tunjukkan tombol ini kepada pengguna yang terhubung dengan admin Cara untuk mengirimkan versi tertentu kepada pengguna.
Lalu, pergi ke aplikasi web atau aplikasi native Capgo, masuk sebagai admin aplikasi, pilih aplikasi Anda, klik daftar perangkat.
Lalu masukkan ID perangkat ke dalam bar pencarian, klik perangkat yang ditemukan, lalu klik tautan Channel, pilih versi yang diinginkan. developmentSetelah itu, mintalah rekan tim Anda untuk membuka aplikasi lagi, tunggu 30 detik, lalu buka tutup.
Ia harus mendapatkan versi Anda.
Cara Otomatis
Cara ini dapat berguna untuk tes beta Anda, tetapi ini lebih lama untuk diimplementasikan.
Sama seperti cara manual, Anda harus mendapatkan ID perangkat.
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 bagaimana Anda melakukannya.
Saya hanya akan memberikan saran Anda untuk menyimpannya di database, sehingga akan memudahkan hidup Anda nanti.
Lalu di backend Anda, Anda harus mengirimkannya ke Capgo backend juga. 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)
}
Saat mengirimkan perangkat_id di dalam tubuhnya ke URL yang di-deploy dengan metode POST untuk menambahkan dan DELETE untuk menghapus.
Setelah ini diatur, cobalah untuk menambahkan tombol di aplikasi Anda untuk memilih saluran, dan periksa di aplikasi web apakah sudah teratur.
Anda juga dapat mengirimkan null untuk menghapus override
Jika Anda memerlukan untuk memeriksa secara programatis apa saja override yang telah diatur pada perangkat, Anda dapat mengakses 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 Mengirimkan Update Spesifik ke Pengguna atau Kelompok
Jika Anda menggunakan Cara Mengirimkan Update Spesifik ke Pengguna atau Kelompok untuk merencanakan routing saluran dan peluncuran rollover, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Paket Uji Coba Beta untuk alur kerja produk di Paket Uji Coba Beta, dan Paket Target Versi untuk alur kerja produk di Paket Target Versi.