Apakah kamu pernah berharap bisa mengirimkan perubahan langsung ke pengguna tertentu untuk tinjauan dan umpan balik mereka - tanpa harus meminta mereka mengunduh dan menginstal versi baru dari TestFlight atau Google Play?
Saya pernah memiliki pelanggan yang meminta perbaikan yang saya bisa segera implementasikan, tapi mendapatkan hasilnya ke tangan mereka untuk memvalidasi berarti mengirimkan pembaruan ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (pekerjaan untuk kedua kita).
Apa yang kurang adalah fleksibilitas. Pengembang ingin bisa menyajikan pembaruan yang berbeda-beda ke kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau basis pengguna seluruhnya ketika tepat.
Tidak ada cara untuk memindahkan versi produksi ke versi kerja sama, mengumpulkan umpan balik, dan kemudian kembali ke produksi.
Itu yang mengubah saluran TV mengizinkan. Aplikasi yang terpasang di perangkat pengguna bisa mengubah saluran pembaruan secara waktu nyata, mengubah aplikasi produksi menjadi ruang yang fleksibel untuk tinjauan dan iterasi bukan titik akhir yang tetap.
Pengertian Saluran Pembaruan
Saluran pembaruan adalah cara Capgo menargetkan pembaruan ke versi tertentu. Setiap versi terkait dengan saluran, dan saluran itu menentukan pembaruan apa yang akan diterimanya.
Contoh, kamu bisa mengirimkan pembaruan ke preview saluran tanpa mempengaruhi pengguna di saluran lainnya. production. Dalam masa lalu, mengganti saluran memerlukan menginstal build native yang berbeda atau mengubah pengaturan perangkat secara manual melalui dashboard.
Saluran dalam Capgo memungkinkan Anda untuk:
- Mengarahkan kelompok pengguna yang berbeda dengan fitur yang berbeda
- Menggunakan A/B testing dengan mengalokasikan pengguna ke saluran yang berbeda
- Mengeluarkan fitur baru secara bertahap
- Membuat program tes beta
- Mengatasi masalah debug pada pengguna individu
Jika Anda tidak familiar dengan saluran update, dokumentasi Capgo saluran menutupinya dalam lebih detail. Apa itu Channel Surfing?
Channel surfing memungkinkan aplikasi yang terpasang untuk menarik dari berbagai aliran pembaruan tanpa harus menginstal ulang. Aplikasi yang terpasang dapat mengganti saluran pembaruan pada waktu runtime, dan akan terus menerima pembaruan dari saluran yang baru dipilih hingga aplikasi diuninstall atau diganti ke saluran lainnya.
Target specific user groups with different features
In praktek, ini berarti pemilik produk atau QA dapat mengubah sebuah production build ke, misalnya, sebuah preview saluran, mencoba perubahan terbaru. Ketika mereka sudah selesai melakukan tes, mereka kembali ke production lagi. Tidak perlu melakukan reinstall atau membuat build preview terpisah.
Di bawah kerangka kerja, channel surfing bekerja dengan membiarkan aplikasi memberitahu klien update mana saluran yang harus digunakan. Pilihan itu dapat diubah pada waktu runtime dan tetap berlaku sampai dihapus atau digantikan.
Bagaimana Menerapkan Channel Surfing
Sebelum Anda dapat mencoba channel surfing, proyek Anda harus dikonfigurasi dengan Capgo Live Updates. Untuk mengatur hal itu, ikuti panduan cepat Capgo Pengaturan yang hanya diperlukan untuk channel surfing adalah mengaktifkan “Izinkan perangkat untuk berasosiasi sendiri” pada setiap saluran yang ingin Anda ubah ke dalam dashboard Capgo..
Tidak ada perubahan Capgo atau modifikasi konfigurasi yang diperlukan di luar itu. Di intinya, channel surfing dikendalikan oleh satu panggilan code:
Ini menetapkan saluran yang digunakan ketika melakukan kueri API untuk update.
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({ channel: 'your-channel' });
This sets the channel that is used when querying Capgo for updates. Pelajari lebih lanjut tentang setChannel API.
Penggantian Saluran Instan (v5.34.0+)
Mulai dari versi plugin 5.34.0, 6.34.0, 7.34.0, atau 8.0.0 (tergantung pada versi utamamu), setChannel() berfungsi berbeda dan lebih cepat:
- Validasi Backend (hanya baca): Permintaan dikirim ke Capgo backend untuk memvalidasi apakah saluran diizinkan
- Perbarui penyimpanan lokal: Jika validasi berhasil, saluran disimpan ke penyimpanan lokal perangkat
- Efek instan: Periksa update berikutnya menggunakan saluran baru segera
Sebelumnya, setChannel() mengsimpan pengaturan saluran pengganti ke database backend (seperti Dashboard atau API perubahan). Perangkat harus menunggu replikasi backend (hingga 2 menit) sebelum saluran baru diakui. perilaku baru hanya membaca dari backend (untuk validasi) dan menyimpan secara lokal, sehingga perubahan saluran menjadi instan.
Alur Penuh Penggantian Saluran
Untuk pengalaman pengguna yang lebih baik, Anda biasanya ingin melakukan lebih dari hanya mengganti saluran dan menunggu aplikasi restart berikutnya. Pendekatan umum adalah memeriksa update secara langsung, mengunduhnya jika tersedia, dan memuat ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.
Alur yang biasanya seperti ini:
- Mengubah saluran (
setChannel) - Meriksa update (
getLatest) - Mengunduh dan menerapkan update (
download,setataunext) - Memuat ulang aplikasi jika perlu (
reload)
Contoh lengkap seperti ini:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function switchChannel(selectedChannel: string) {
try {
// 1. Set the updates channel (with optional auto-update trigger)
await CapacitorUpdater.setChannel({
channel: selectedChannel,
triggerAutoUpdate: true // Immediately check for updates
});
console.log(`Switched to channel: ${selectedChannel}`);
// If you want more control, handle the update manually:
// const latest = await CapacitorUpdater.getLatest();
// if (latest.url) {
// const bundle = await CapacitorUpdater.download({
// url: latest.url,
// version: latest.version
// });
// await CapacitorUpdater.set({ id: bundle.id });
// }
} catch (error) {
console.error('Failed to switch channel:', error);
}
}
// Switch to the beta channel
switchChannel('beta');
Bagaimana Anda mengatur alur ini adalah pilihan Anda. Anda mungkin membagi langkah-langkah ini di antara interaksi yang berbeda atau menjalankannya semua sekaligus. Terlepas dari bagaimana Anda mengatur alur, pastikan untuk mengakomodasi kegagalan. Masalah jaringan atau saluran yang tidak valid dapat semua mencegah update dari diterapkan.
Syarat Hanya Satu: Aktifkan Penugasan Otomatis
Hanya satu hal yang perlu Anda lakukan untuk mengaktifkan navigasi saluran. Sebelum aplikasi Anda dapat beralih ke saluran menggunakan setChannel(), Anda harus mengaktifkan penugasan sendiri untuk saluran tersebut di dashboard Capgo:
- Buka halaman Saluran di dashboard Capgo Anda
- Klik nama saluran yang ingin Anda kelola
- Aktifkan “Allow devices to self associate”
- Tetapkan perubahan

Itu saja. Tidak perlu mengubah konfigurasi di aplikasi Anda. defaultChannel memerlukan pengaturan. Cukup aktifkan pengasasan sendiri pada saluran yang ingin pengguna dapat berganti.
Jika pengaturan ini dinonaktifkan, setiap upaya untuk menghubungi setChannel() dengan saluran ini akan gagal dan channelPrivate acara akan terjadi.
Daftar Saluran Tersedia
Anda dapat mengambil daftar saluran yang tersedia untuk pengasasan sendiri:
const { channels } = await CapacitorUpdater.listChannels();
console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI
Hal ini hanya mengembalikan saluran di mana pengasasan sendiri diaktifkan.
Mendapatkan Saluran Saat Ini
Periksa saluran mana yang perangkat saat ini ditugaskan:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Kembali ke Saluran Bawaan
Untuk menghapus pengaturan saluran yang diubah dan kembali ke saluran bawaan:
await CapacitorUpdater.unsetChannel({});
Hal ini melepaskan perangkat dari saluran yang ditugaskan secara spesifik, menyebabkan perangkat kembali ke saluran bawaan. defaultChannel Ini dalam konfigurasi Anda atau default awan.
Bagaimana Cara Menguji Channel Surfing
Untuk melihat channel surfing dalam aksi, Anda memerlukan build rilis - __CAPGO_KEEP_0__ dirancang untuk build rilis. Dalam build debug, aplikasi biasanya mengambil JavaScript dari server pengembangan, yang menghindari aliran pembaruan normal. @capgo/capacitor-updater API is designed for release builds. In debug builds, the app typically loads JavaScript from a development server instead, which bypasses the normal update flow.
Satu-satunya persyaratan untuk channel surfing adalah mengaktifkan
“Izinkan perangkat untuk berasosiasi sendiri” pada setiap channel yang ingin Anda izinkan berganti. Tidak ada perubahan konfigurasi yang diperlukan dalam aplikasi Anda. Membuat Build Uji
Bangun aplikasi Anda seperti biasa:
Lalu buatlah build native Anda menggunakan Xcode atau Android Studio, atau gunakan pipeline CI/CD Anda. Aplikasi akan memulai pada channel yang ditetapkan sebagai default awan dalam dashboard __CAPGO_KEEP_0__ Anda.
bun run build && npx cap sync
Then create your native builds using Xcode or Android Studio, or use your CI/CD pipeline. The app will start on whichever channel is set as the cloud default in your Capgo dashboard.
__CAPGO_KEEP_0__
Setelah aplikasi terpasang, publikasikan pembaruan ke berbagai saluran:
# Publish to preview channel
npx @capgo/cli@latest bundle upload --channel preview
# Publish to production channel
npx @capgo/cli@latest bundle upload --channel production
Dari sana, navigasikan ke UI pencarian saluran di aplikasi dan aktifkan switch saluran. Aplikasi harus mengambil pembaruan dari saluran yang dipilih dan muat ulang ke pembaruan baru.
Membangun UI Switcher Saluran
Pencarian saluran biasanya adalah sesuatu yang ingin Anda terbatas pada pengguna tertentu, bukan pada semua pengguna aplikasi. Misalnya, Anda mungkin memiliki tombol yang tersedia untuk karyawan yang terautentikasi saja yang mengubah aplikasi ke saluran pratinjau.
Contoh komponen React untuk switcher saluran berikut ini:
import { useState, useEffect } from 'react';
import { CapacitorUpdater } from '@capgo/capacitor-updater';
export function ChannelSwitcher() {
const [currentChannel, setCurrentChannel] = useState<string>('');
const [availableChannels, setAvailableChannels] = useState<string[]>([]);
const [isLoading, setIsLoading] = useState(false);
useEffect(() => {
loadChannelInfo();
}, []);
async function loadChannelInfo() {
const { channel } = await CapacitorUpdater.getChannel();
setCurrentChannel(channel || 'default');
const { channels } = await CapacitorUpdater.listChannels();
setAvailableChannels(channels.map(c => c.name));
}
async function handleChannelSwitch(channel: string) {
setIsLoading(true);
try {
await CapacitorUpdater.setChannel({
channel,
triggerAutoUpdate: true
});
setCurrentChannel(channel);
// App will update in background or on next restart
} catch (error) {
console.error('Failed to switch channel:', error);
} finally {
setIsLoading(false);
}
}
return (
<div>
<p>Current channel: {currentChannel}</p>
<div>
{availableChannels.map(channel => (
<button
key={channel}
onClick={() => handleChannelSwitch(channel)}
disabled={isLoading || channel === currentChannel}
>
Switch to {channel}
</button>
))}
</div>
</div>
);
}
Pembaruan OTA yang Perlu Diperhatikan
Tidak ada yang spesifik untuk pencarian saluran, tetapi hal-hal ini cenderung muncul dengan cepat setelah Anda mulai mengganti saluran secara waktu eksekusi.
Perbedaan Versi Waktu Eksekusi
Pembaruan di Capgo terkait dengan versi aplikasi native. Jika versi native dari pembaruan tidak cocok dengan versi native dari aplikasi yang terpasang, pembaruan tidak akan diunduh atau diterapkan. Ketika melakukan pencarian saluran, biasanya menunjukkan aplikasi yang berganti saluran tetapi tidak ada pembaruan yang diterapkan, meskipun ada di saluran tersebut.
Biasanya berarti pembaruan dipublikasikan dari versi native aplikasi yang berbeda. Pastikan bundle saluran kompatibel dengan versi native yang terpasang di perangkat.
Menghapus atau Membatalkan Pembaruan
Jika aplikasi telah mengunduh pembaruan untuk saluran, menghapus pembaruan dari Capgo dashboard tidak menghapusnya dari perangkat yang sudah memiliki pembaruan tersebut. Penghapusan hanya menghentikan pembaruan Indonesia Unduhan.
Metode yang paling dapat diandalkan untuk membatalkan pembaruan yang buruk adalah dengan menerbitkan pembaruan yang terbukti baik ke saluran yang sama. Ini menciptakan pembaruan baru di atas sejarah saluran, yang akan dianggap sebagai versi terbaru dan diterapkan sebaliknya.
Capgo juga menyediakan mekanisme rollback yang dapat menginstruksikan klien untuk menerapkan pembaruan stabil sebelumnya atau kembali ke pembaruan yang diintegrasikan dalam build.
Pertimbangan Migrasi Data
Mengganti saluran mengubah bundle JavaScript yang dijalankan aplikasi. Jika aplikasi Anda bergantung pada migrasi atau bentuk data yang tidak kompatibel di antara saluran, mengganti-ganti saluran dapat menyebabkan masalah.
Contoh: Jika pembaruan beta menerapkan migrasi database, versi produksi mungkin tidak memahami skema baru. Pengembang harus memastikan pembaruan mereka tetap aman untuk diganti-ganti atau membatasi penggantian ke satu arah ketika diperlukan.
Mengapa Surfing Saluran Meningkatkan Iterasi Mobile
Surfing saluran sangat berguna ketika Anda membutuhkan waktu untuk memeriksa perubahan secara cepat di lingkungan produksi.
Pengujian Cepat
Bayangkan perbaikan bug yang mendesak yang membutuhkan pengujian sebelum diterapkan secara luas. Dengan surfing saluran, perubahan dapat diisolasi ke dalam sekelompok pengguna yang ditunjuk yang dapat memeriksa perubahan sebelum mencapai produksi.
Pengujian Stakeholder
A pemilik produk atau QA dapat mengubah build produksi yang terpasang ke saluran pembaruan lain, memverifikasi perbaikan atau fitur, dan kemudian kembali lagi setelah selesai.
Uji Coba yang Dipercepat
Fitur ini membuat lebih mudah melibatkan stakeholders non-teknis dalam tinjauan dan pengambilan keputusan, sementara tetap menjaga alur kerja yang lancar. Build produksi tunggal menjadi alat yang fleksibel untuk uji coba, umpan balik, dan validasi.
Penggunaan
- Pengujian QA: Biarkan tim QA berganti antara cabang fitur
- Program Beta: Pengguna memilih saluran beta untuk akses awal
- Tinjauan Stakeholder: Pemilik produk memperlihatkan perubahan sebelum rilis
- Pengujian A/B: Tugaskan pengguna ke saluran yang berbeda untuk eksperimen
- Debugging: Ganti saluran pengguna tertentu ke saluran debug untuk mendiagnosis masalah
Pembandingan: Metode Perubahan Saluran
| Metode | Waktu Efek | Dimana Data Disimpan | Penggunaan Kasus |
|---|---|---|---|
setChannel() bisa diambil dari plugin | Instan | Hanya perangkat (local) | Pengguna mengganti saluran secara langsung di aplikasi |
| Dashboard penggantian perangkat | Hingga 2 menit | Database Backend | Perubahan yang diinisiasi oleh admin untuk perangkat tertentu |
| API pengaturan saluran | Hingga 2 menit | Database Backend | Integrasi backend yang diotomatisasi |
Untuk pengalaman pengguna yang terbaik ketika membangun antarmuka pengguna untuk berganti saluran, selalu gunakan metode plugin. setChannel() Praktik Terbaik
Batasi Akses
- : Melihat saluran biasanya digunakan untuk pengguna internal - jangan terlalu banyak menggunakannya untuk semua pengguna __CAPGO_KEEP_0__
- Pengelolaan Kesalahan: Selalu tangani kesalahan dengan sopan ketika berganti saluran
- Pengujian Kompabilitas: Pastikan pembaruan pada saluran yang berbeda kompatibel dengan versi native yang terpasang
- Dokumentasi Saluran: Simpan dokumentasi yang jelas tentang apa yang setiap saluran digunakan untuk
- Pengawasan Penggunaan: Ikuti perangkat mana yang berada di mana-mana saluran untuk debugging
Sumber Daya
- : Capgo Dokumentasi Perbarui Hidup
- Dokumentasi Saluran
- : Dokumentasi Plugin API Referensi
- Capgo CLI Perintah
Kesimpulan
Mencari saluran mengubah cara Anda dapat beriterasi pada aplikasi Capacitor Anda. Sebaliknya, bangunan produksi menjadi alat yang fleksibel untuk pengujian, validasi, dan iterasi cepat.
Dengan penggantian saluran instan yang diperkenalkan dalam versi plugin terbaru, pengalaman sekarang sudah mulus - pengguna dapat berganti saluran dan langsung menerima update dari saluran baru tanpa menunggu periode apa pun.
Apakah Anda sedang memvalidasi perbaikan bug dengan stakeholders, menjalankan program beta, atau menguji masalah dengan pengguna tertentu, mencari saluran memberikan fleksibilitas untuk mengirimkan update yang tepat kepada pengguna yang tepat pada waktu yang tepat.
Lanjutkan dari Mencari Saluran untuk Capgo: Cara Mengganti Saluran Update pada Waktu Jalannya
Jika Anda menggunakan Mencari Saluran untuk Capgo: Cara Mengganti Saluran Update pada Waktu Jalannya untuk merencanakan routing saluran dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Channels, Channels untuk detail implementasi di Channels, Solusi Pengujian Beta untuk alur produk di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur produk di Solusi Target Versi.