Pendahuluan
Ketika Anda mulai menikmati sistem pembaruan Capgo, seperti saya untuk aplikasi saya, Anda akan mulai merasakan perasaan “Apa jika saya ingin lebih?”
Saya juga merasakan perasaan itu, tetapi karena saya adalah pembuat Capgo, saya dapat melihatnya!
Karena semua adalah sumber terbuka, Anda memiliki kekuatan ini juga :)
The next pain saya alami dalam proses distribusi aplikasi Capacitor adalah membuat rekan tim lainnya menguji perbaruan!
Dengan TestFlight, masalahnya sederhana, membawa orang ke dalam tim dan membuat mereka memahami cara mendapatkannya adalah waktu yang lama!
Dan tentu saja, setiap kali Anda mengirimkan ke Apple Anda memiliki proses ulasan acak oleh bot yang bisa memakan waktu 5 menit atau 5 jam, Anda tidak pernah tahu.
Saya pernah mengalami banyak kali presentasi saya tertunda karena hal ini…
Dan untuk Google ini bahkan lebih buruk, misteri besar hidup saya, mengeluarkan versi produksi membutuhkan waktu kurang dari 2 jam, tapi mengeluarkan versi beta dekat membutuhkan waktu 1-2 hari.
Pembahasan
Untuk mengatasi ini, saya menciptakan sistem Channel di Capgo.
npx @capgo/cli@latest bundle upload -c production akan memperbarui ke semua pengguna (jika channel produksi diatur ke default)
Jika Anda npx @capgo/cli@latest bundle upload -c development maka versi akan mendarat di channel yang berbeda, ini bisa diotomatisasi di GitHub action.
Maka Anda memiliki 2 cara untuk memungkinkan pengguna mendapatkan perbaruan dari channel
Jalan pintas otomatis
Fungsi ini dapat berguna ketika Anda tidak ingin membuat backend sendiri untuk pengaturan saluran, ini cepat untuk diimplementasikan.
Dengan itu, satu-satunya hal yang perlu Anda lakukan adalah memungkinkan salah satu saluran Anda untuk menjadi self untuk pengaturan.

Dan kemudian tambahkan ini di code 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' })
Jalan pintas manual
Fungsi ini dapat berguna untuk tim internal Anda, ini cepat untuk diimplementasikan. Izinkan pengguna untuk menyalin ID perangkat dari aplikasi Anda dan kirimkan ke Anda secara manual, fungsi ini code akan membantu Anda untuk mendapatkannya:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
const deviceId = await CapacitorUpdater.getDeviceId()
Tutup tombol di suatu tempat di aplikasi Anda, atau tampilkan tombol hanya untuk pengguna yang terhubung dengan peran, misalnya. admin Kemudian pergi ke aplikasi web atau aplikasi native __CAPGO_KEEP_0__, hubungkan sebagai admin aplikasi, pilih aplikasi Anda, klik pada daftar perangkat.
Then Go to the Web app or native app Capgo, connect as app admin, select your app, click on the device list.
__CAPGO_KEEP_0__ development__CAPGO_KEEP_0__
Dia harus mendapatkan versi Anda.
Cara otomatis
Hal ini dapat berguna untuk tes beta Anda, ini lebih lama untuk diimplementasikan.
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 bagaimana Anda melakukannya.
Saya hanya akan menyarankan Anda untuk menyimpannya di database, itu akan memudahkan hidup Anda nanti.
Lalu di backend Anda Anda harus mengirimkannya ke backend Capgo juga. Di bawah ini dua code contoh:
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)
}
Dan hanya kirimkan device_id Anda di tubuhnya ke URL yang diinstal dengan POST untuk menambahkan dan DELETE method untuk menghapus.
Setelah ini diatur, cobalah untuk menambahkan tombol di aplikasi Anda untuk memilih masuk ke channel, dan periksa di aplikasi web jika itu telah terkonfigurasi.
Anda juga dapat mengirimkan null untuk menghapus penggantian
Jika Anda perlu memeriksa secara programatis apa penggantian yang telah ditetapkan pada perangkat, Anda dapat mendapatkan pada 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())
__CAPGO_KEEP_0__
Jika Anda menggunakan __CAPGO_KEEP_0__ untuk merencanakan routing saluran dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.