Apakah kamu pernah berharap bisa mengirimkan perubahan langsung ke pengguna tertentu untuk mendapatkan ulasan dan umpan balik mereka secara langsung - 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 update 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 update yang berbeda-beda ke kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau basis pengguna seluruhnya ketika perlu.
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 update secara waktu eksekusi, mengubah aplikasi produksi menjadi ruang yang fleksibel untuk ulasan dan iterasi bukan titik akhir yang tetap.
Mengerti Saluran Update
Saluran update adalah cara Capgo menargetkan update ke versi tertentu. Setiap versi terkait dengan saluran, dan saluran itu menentukan update apa yang akan diterimanya.
Contoh, kamu bisa mengirimkan update 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
- Melakukan tes A/B dengan mengalokasikan pengguna ke saluran yang berbeda
- Mengeluarkan fitur baru secara bertahap
- Membuat program tes beta
- Mengatasi masalah debug produksi dengan 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 terinstal untuk mengambil dari berbagai aliran pembaruan tanpa menginstal ulang. Aplikasi yang terinstal dapat mengganti saluran pembaruan pada waktu runtime, dan akan terus menerima pembaruan dari saluran yang baru dipilih hingga aplikasi di-uninstall atau diganti ke saluran lainnya.
__CAPGO_KEEP_0__
In praktek, ini berarti pemilik produk atau QA dapat mengubah sebuah production ke, misalnya, sebuah preview saluran, mencoba perubahan terbaru. Ketika mereka selesai melakukan tes, mereka kembali ke production lagi. Tidak perlu melakukan reinstall atau membuat build preview terpisah.
Di bawah kerangka kerja, surfing saluran bekerja dengan membiarkan aplikasi memberitahu klien update mana saluran yang harus digunakan. Pilihan tersebut dapat diubah pada waktu runtime dan tetap berlaku sampai dihapus atau diganti.
Cara Mengimplementasikan Surfing Saluran
Sebelum Anda dapat mencoba surfing saluran, project Anda harus dikonfigurasi dengan Capgo Live Updates. Untuk mengatur hal tersebut, ikuti panduan cepat Capgo. Hanya pengaturan yang diperlukan untuk surfing saluran adalah mengaktifkan "Izin perangkat untuk mengasosiasi sendiri" pada setiap saluran yang ingin Anda ubah ke dalam dashboard Capgo..
Tidak ada perubahan atau modifikasi konfigurasi Capgo yang diperlukan di luar itu. Pada intinya, surfing saluran dipicu 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' });
Capgo Belajar lebih lanjut tentang setChannel API.
Pindah 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 backend Capgo untuk memvalidasi apakah saluran diizinkan
- Pembaruan Penyimpanan Lokal: Jika validasi berhasil, saluran disimpan ke penyimpanan lokal perangkat
- Pengaruh Instan: Periksa pembaruan selanjutnya menggunakan saluran baru segera
Sebelumnya, setChannel() menghemat saluran override ke database backend (seperti Dashboard atau API perubahan). Perangkat harus menunggu replikasi backend (sampai 2 menit) sebelum saluran baru diakui. perilaku baru hanya membaca dari backend (untuk validasi) dan menyimpan secara lokal, membuat perubahan saluran 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 untuk memeriksa langsung update, mengunduhnya jika tersedia, dan memulai ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.
Alur yang biasa terlihat seperti ini:
- Ganti saluran (
setChannel) - Periksa update (
getLatest) - Fetech dan terapkan update (
download,setataunext) - Mulai 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 mempertimbangkan kegagalan. Masalah jaringan atau saluran yang tidak valid dapat semua mencegah update dari diterapkan.
Syarat Hanya Satu: Aktifkan Penugasan Otomatis
Ini adalah satu-satunya 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:
- Arahkan ke bagian Saluran dalam dashboard Capgo Anda
- Klik pada nama saluran yang ingin Anda kelola
- Aktifkan “Izinkan perangkat untuk mengasosiasikan sendiri”
- Simpan perubahan

Itu saja. Tidak perlu mengubah konfigurasi di aplikasi Anda. defaultChannel setting diperlukan. Cukup aktifkan pengaturan self-assignment pada saluran yang ingin pengguna dapat berganti.
Jika pengaturan ini dinonaktifkan, setiap upaya untuk memanggil setChannel() dengan saluran ini akan gagal dan channelPrivate event akan terjadi.
Daftar Saluran Tersedia
Anda dapat mengambil daftar saluran yang tersedia untuk self-assignment:
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 self-assignment diaktifkan.
Mendapatkan Saluran Saat Ini
Periksa saluran mana yang perangkat saat ini terasosiasi:
const { channel } = await CapacitorUpdater.getChannel();
console.log('Current channel:', channel);
Kembali ke Saluran Default
Untuk menghapus pengaturan saluran override dan kembali ke saluran default:
await CapacitorUpdater.unsetChannel({});
Hal ini menghilangkan perangkat dari saluran yang secara spesifik diasosiasi, menyebabkan perangkat kembali ke saluran defaultChannel Ini dalam konfigurasi Anda atau default awan.
Berikut Cara Menguji Channel Surfing
Untuk melihat channel surfing dalam aksi, Anda memerlukan build rilis - __CAPGO_KEEP_0__ ini dirancang untuk build rilis. Dalam build debug, aplikasi biasanya memuat JavaScript dari server pengembangan, yang menghindari alur 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.
Saat ini, satu-satunya persyaratan untuk channel surfing adalah mengaktifkan
“Izinkan perangkat untuk mengasosiasi sendiri” pada setiap channel yang ingin Anda izinkan berganti. Tidak ada perubahan konfigurasi yang diperlukan dalam aplikasi Anda. Membuat Build Uji
Buat 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 terinstal, 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 antarmuka pengguna browsing saluran di aplikasi dan aktifkan switch saluran. Aplikasi harus mengambil pembaruan dari saluran yang dipilih dan memuat ulang ke pembaruan baru.
Membangun Antarmuka Switcher Saluran
Browsing saluran biasanya merupakan sesuatu yang ingin Anda terbatas pada pengguna tertentu, bukan pada semua pengguna yang menggunakan 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:
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 browsing saluran, tetapi hal-hal ini cenderung menjadi jelas setelah Anda memulai mengganti saluran secara waktu eksekusi.
Perbedaan Versi Waktu Eksekusi
Pembaruan di Capgo terkait dengan versi aplikasi native. Jika versi native dari pembaruan tidak sesuai dengan versi native dari aplikasi yang terinstal, pembaruan tidak akan didownload atau diterapkan. Ketika browsing saluran, hal ini biasanya muncul sebagai 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 terinstal di perangkat.
Menghapus atau Membatalkan Pembaruan
Jika aplikasi telah mengunduh pembaruan untuk saluran, menghapus pembaruan dari dashboard Capgo tidak akan menghapusnya dari perangkat yang sudah memiliki pembaruan tersebut. Penghapusan hanya akan menghentikan pembaruan bahwa unduh.
Metode yang paling dapat diandalkan untuk membatalkan pembaruan yang buruk adalah dengan menerbitkan pembaruan yang diketahui baik ke saluran yang sama. Ini menciptakan pembaruan baru di atas sejarah saluran, yang akan dianggap sebagai versi terbaru oleh klien 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 oleh aplikasi. Jika aplikasi Anda bergantung pada migrasi atau bentuk data yang tidak kompatibel di antara saluran, mengganti-ganti mungkin 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 Channel Surfing Meningkatkan Iterasi Mobile
Channel surfing 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 diimplementasikan secara luas. Dengan channel surfing, 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, sambil menjaga alur kerja tetap lancar. Build produksi tunggal menjadi alat yang fleksibel untuk uji coba, umpan balik, dan validasi.
Penggunaan Kasus
- Pengujian QA: Tim QA dapat beralih antara cabang fitur
- Program Beta: Pengguna memilih saluran beta untuk akses awal
- Tinjauan Stakeholder: Pemilik produk memperlihatkan perubahan sebelum rilis
- Pengujian A/B: Mengalokasikan pengguna ke saluran yang berbeda untuk eksperimen
- DebuggingMengatur Debugging
Comparison: Metode Perubahan Channel
| Metode | Waktu Efek | Ditahan Dimana | Penggunaan Kasus |
|---|---|---|---|
setChannel() dari plugin | Saat Ini | Hanya Perangkat (local) | Penggunaan Channel Switching yang Diinisiasi Pengguna dalam Aplikasi |
| Dashboard Penggantian Perangkat | Hingga 2 menit | Database Backend | Perubahan admin untuk perangkat tertentu |
| Pengaturan saluran API | Hingga 2 menit | Database Backend | Integrasi backend otomatis |
Untuk pengalaman pengguna terbaik saat membangun UI penggantian saluran, selalu gunakan metode plugin. setChannel() Praktik Terbaik
Batasi Akses
- : Navigasi saluran biasanya untuk penggunaan internal - jangan terbukanya untuk semua pengguna']} protectedTokens
- Pengelolaan Kesalahan: Selalu tangani kesalahan dengan sopan ketika berganti saluran
- Pengujian Kompabilitas: Pastikan pembaruan pada saluran yang berbeda kompatibel dengan versi native yang terpasang
- Documentasi 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 API Referensi Plugin
- Capgo CLI Perintah
Kesimpulan
Mencari saluran mengubah cara Anda dapat beriterasi pada aplikasi Capacitor Anda. Sebaliknya, bangunan produksi menjadi alat fleksibel untuk pengujian, validasi, dan iterasi cepat.
Dengan mengaktifkan saluran instan yang diperkenalkan dalam versi plugin terbaru, pengalaman sekarang menjadi lancar - pengguna dapat beralih ke saluran baru dan langsung menerima update dari saluran baru tanpa menunggu periode tertentu.
Apakah Anda sedang memvalidasi perbaikan bug dengan stakeholder, menjalankan program beta, atau memperbaiki masalah dengan pengguna tertentu, surfing saluran memberikan fleksibilitas untuk mengirimkan update yang tepat kepada pengguna yang tepat pada waktu yang tepat.
Lanjutkan dari Channel Surfing untuk Capgo: Cara Mengganti Saluran Update pada Waktu Jalannya
Jika Anda menggunakan Channel Surfing untuk Capgo: Cara Mengganti Saluran Update pada Waktu Jalannya untuk merencanakan routing saluran dan peluncuran tahap demi tahap, 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.