Lebih lanjut ke konten utama
Tutorial

Mengemudi Saluran untuk Capgo: Cara Mengganti Saluran Pembaruan di Waktu Jalannya

Mengirimkan perubahan ke pengguna tertentu secara instan dengan menggunakan switch kanal waktu eksekusi Capgo. Mengganti saluran pembaruan tanpa harus menginstal ulang aplikasi Capacitor.

Mencari Saluran untuk Capgo: Cara Mengganti Saluran Perbaruan secara Waktu Jalannya

Apakah Anda pernah berharap dapat mengirimkan perubahan langsung ke pengguna tertentu untuk mendapatkan ulasan dan umpan balik mereka segera - tanpa perlu meminta mereka mengunduh dan menginstal versi baru dari TestFlight atau Google Play?

Saya pernah memiliki pelanggan yang meminta perbaikan yang saya bisa implementasikan dengan cepat, tetapi mendapatkan hasilnya ke tangan mereka untuk memvalidasi berarti mengirimkan perbaruan ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (pekerjaan untuk kedua-duanya).

Apa yang hilang adalah fleksibilitas. Pengembang ingin dapat menyajikan perbaruan yang berbeda kepada kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau basis pengguna seluruhnya ketika tepat.

Tidak ada cara untuk membangun produksi untuk beralih ke versi kerja sama, mengumpulkan umpan balik, dan kemudian kembali ke produksi.

Itu adalah apa yang Channel Switching Mengaktifkan. Aplikasi yang diinstal pada perangkat pengguna dapat beralih ke saluran pembaruan waktu runtime, mengubah aplikasi produksi menjadi ruang fleksibel untuk tinjauan dan iterasi daripada titik akhir yang tetap. Hal ini sangat berguna bagi stakeholders non-teknis yang bekerja dengan aplikasi produksi, memungkinkan mereka untuk menguji perubahan dan memberikan umpan balik secara langsung di aplikasi yang sudah terinstal.

Pengertian Saluran Pembaruan

Saluran pembaruan adalah cara Capgo menargetkan pembaruan ke bangunan tertentu. Setiap bangunan terkait dengan saluran, dan saluran tersebut menentukan pembaruan apa yang akan diterima.

Misalnya, Anda dapat memublikasikan pembaruan ke sebuah preview channel tanpa mempengaruhi pengguna di productionDahulu, berganti kanal memerlukan menginstal bangunan native yang berbeda atau mengubah pengaturan perangkat secara manual melalui dashboard.

Saluran dalam Capgo memungkinkan Anda:

  • Mengarahkan fitur-fitur yang berbeda untuk kelompok pengguna yang spesifik
  • Lakukan tes A/B dengan mengalokasikan pengguna ke saluran yang berbeda
  • Membuat program tes beta
  • Buat program tes beta
  • Debug masalah produksi dengan pengguna individu

Jika Anda tidak familiar dengan saluran pembaruan, maka Capgo dokumentasi saluran pembaruan menjelaskannya secara lebih detail.

Mengapa Channel Surfing?

Channel surfing memungkinkan aplikasi yang terpasang untuk mengambil dari berbagai aliran pembaruan tanpa harus diinstal ulang. Aplikasi yang terpasang dapat berganti saluran pembaruan secara waktu eksekusi, dan akan terus menerima pembaruan dari saluran yang baru dipilih hingga aplikasi dihapus atau berganti ke saluran lain.

Dalam prakteknya, ini berarti seorang pemilik produk atau QA dapat mengganti production saluran, mencoba perubahan terbaru. Ketika mereka selesai melakukan tes, mereka berganti kembali ke preview channel, coba perubahan terbaru. Ketika mereka selesai melakukan tes, mereka kembali ke production tidak perlu melakukan reinstall atau membuat versi pratinjau terpisah.

Under the hood, channel surfing works by letting the app tell the updates client which channel to use. That choice can be changed at runtime and stays in effect until it’s cleared or replaced.

Bagaimana Mengimplementasikan Channel Surfing

Sebelum Anda dapat mencoba channel surfing, project Anda harus dikonfigurasi dengan Capgo Live Updates. Untuk mengatur hal itu, ikuti panduan cepat start. Capgo panduan cepat start.

Pengaturan yang diperlukan untuk channel surfing adalah mengaktifkan "Izinkan perangkat untuk mengasosiasi sendiri" pada setiap channel yang ingin Anda ubah ke dalam Capgo dashboard. Tidak ada perubahan atau modifikasi konfigurasi code yang diperlukan di luar itu.

Pada dasarnya, channel surfing dikendalikan oleh satu API panggilan:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

await CapacitorUpdater.setChannel({ channel: 'your-channel' });

Ini menetapkan channel yang digunakan ketika mengakses Capgo untuk memperbarui. Pelajari lebih lanjut tentang API setChannel.

Switching Channel Instan (v5.34.0+)

Mulai dari versi plugin 5.34.0, 6.34.0, 7.34.0, atau 8.0.0 (tergantung pada versi utama Anda), setChannel() berfungsi dengan cara yang berbeda dan lebih cepat:

  1. Validasi backend (baca-saja): Mengirim permintaan ke backend Capgo untuk memvalidasi apakah saluran tersebut diizinkan
  2. Penyimpanan lokal diperbarui: Jika validasi berhasil, saluran tersebut disimpan ke penyimpanan lokal perangkat
  3. Efek instan: Periksa update selanjutnya menggunakan saluran baru secara langsung

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, sehingga perubahan saluran instan.

Alur Penuh Switching Channel

Untuk pengalaman pengguna yang lebih baik, Anda biasanya ingin melakukan lebih dari hanya mengganti saluran dan menunggu aplikasi restart. Pendekatan umum adalah untuk langsung memeriksa update, mengunduh jika tersedia, dan memuat ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.

Alur yang biasa digunakan adalah:

  1. Ganti saluran (setChannel)
  2. Periksa update (getLatest)
  3. Dapatkan dan terapkan pembaruan (download, set atau next)
  4. Reload aplikasi jika diperlukan (reload)

Contoh lengkap 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 beberapa interaksi atau menjalankannya secara bersamaan. Terlepas dari bagaimana Anda mengatur alur, pastikan untuk mengakomodasi kegagalan. Masalah jaringan atau saluran yang tidak valid dapat mencegah pembaruan dari diterapkan.

Satu-Satunya Syarat: Aktifkan Penugasan Sendiri

Hal ini adalah satu-satunya hal yang perlu Anda lakukan untuk mengaktifkan channel surfing. Sebelum aplikasi Anda dapat beralih ke saluran menggunakan setChannel()anda harus mengaktifkan penugasan sendiri untuk saluran tersebut di dashboard Capgo:

  1. Buka bagian Saluran di dashboard Capgo Anda
  2. Klik nama saluran yang ingin Anda kelola
  3. Mengaktifkan “Izinkan perangkat untuk mengasosiasi sendiri”
  4. Simpan perubahan

Mengaktifkan pengasosiasian sendiri di pengaturan saluran

Itu saja. Tidak perlu mengubah konfigurasi di aplikasi Anda. Tidak defaultChannel Pengaturan tidak diperlukan. Cukup mengaktifkan pengasosiasian sendiri pada saluran yang ingin pengguna dapat berganti.

Jika pengaturan ini dinonaktifkan, setiap upaya untuk memanggil setChannel() dengan channel ini akan gagal dan channelPrivate akan mengeluarkan acara.

Daftar Saluran yang Tersedia

Anda dapat mengambil daftar saluran yang tersedia untuk pengasosiasian sendiri:

const { channels } = await CapacitorUpdater.listChannels();

console.log('Available channels:', channels.map(c => c.name));
// Use this to build a channel selector UI

Hanya mengembalikan saluran di mana pengasasan diri diaktifkan.

Mendapatkan Saluran Saat Ini

Periksa saluran mana yang saat ini ditugaskan ke perangkat:

const { channel } = await CapacitorUpdater.getChannel();

console.log('Current channel:', channel);

Kembali ke Saluran Default

Untuk menghapus pengaturan saluran yang diubah dan kembali ke saluran default:

await CapacitorUpdater.unsetChannel({});

Ini melepas perangkat dari saluran yang ditugaskan secara spesifik, sehingga jatuh kembali ke defaultChannel di konfigurasi Anda atau saluran default di cloud.

Cara Menguji Surfing Saluran

Untuk melihat surfing saluran dalam aksi, Anda memerlukan build rilis - @capgo/capacitor-updater API dirancang untuk build rilis. Di build debug, aplikasi biasanya mengambil JavaScript dari server pengembangan, yang menghindari alur pembaruan normal.

Persyaratan

Satu-satunya persyaratan untuk surfing saluran adalah mengaktifkan “Biarkan perangkat untuk mengasosiasi sendiri” Pada setiap saluran yang ingin Anda izinkan untuk berganti. Tidak perlu ada perubahan konfigurasi pada aplikasi Anda.

Membuat Bangunan Uji

Membuat Build Uji

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.

Mengirimkan Perbaruan ke Berbagai Saluran

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

From there, navigate to your channel surfing UI in the app and trigger the channel switch. The app should fetch the update from the selected channel and reload into the new update.

Membangun Antarmuka Pindah Saluran

Channel surfing is usually something you want to expose to a limited set of users, not to everyone using your app. For example, you might have a button available to authenticated employees only that switches the app to the preview channel.

Contoh komponen React untuk pengganti 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>
  );
}

Contoh Komponen React untuk Switcher Saluran:

Namun, hal-hal ini tidak terkait langsung dengan channel surfing, tetapi akan menjadi jelas setelah Anda mulai mengganti channel 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 aplikasi yang terpasang, pembaruan tidak akan didownload atau diterapkan. Ketika channel surfing, hal ini biasanya muncul sebagai aplikasi yang berganti channel tetapi tidak ada pembaruan yang diterapkan, meskipun ada pembaruan di channel tersebut.

Biasanya ini berarti pembaruan diterbitkan dari versi native aplikasi yang berbeda. Pastikan bundle channel Anda kompatibel dengan versi native aplikasi yang terpasang di perangkat.

Menghapus atau Membatalkan Pembaruan

Jika aplikasi telah mendownload pembaruan untuk channel, menghapus pembaruan dari dashboard Capgo tidak akan menghapusnya dari perangkat yang telah memiliki pembaruan tersebut. Penghapusan hanya akan menghentikan future downloads.

__CAPGO_KEEP_0__ juga menyediakan mekanisme rollback yang dapat menginstruksikan klien untuk menerapkan pembaruan stabil sebelumnya atau kembali ke pembaruan yang diintegrasikan dalam build.

Capgo also provides a rollback mechanism that can instruct clients to re-apply a previous stable update or fall back to the update embedded in the build.

Pertimbangan Migrasi Data

Switching channels changes the JavaScript bundle the app runs. If your app depends on migrations or data shapes that are not compatible across channels, switching back and forth may cause issues.

Contohnya, jika pembaruan beta menerapkan migrasi basis data, versi produksi mungkin tidak memahami skema baru. Pengembang harus memastikan pembaruan tetap aman untuk berganti antara saluran atau membatasi berganti ke satu arah ketika diperlukan.

Alasan Mengapa Channel Surfing Meningkatkan Iterasi Mobile

Channel Surfing Terutama Berguna Ketika Anda Membutuhkan Ulasan Perubahan Cepat di Lingkungan Produksi.

Validasi Cepat

Bayangkan perbaikan bug yang membutuhkan validasi sebelum diimplementasikan secara luas. Dengan channel surfing, perubahan dapat diisolasi ke dalam sekelompok pengguna yang ditunjuk untuk melakukan ulasan sebelum mencapai produksi.

Ulasan Stakeholder

Seorang pemilik produk atau QA dapat berganti antara saluran pembaruan yang diinstal ke dalam produksi, memverifikasi perbaikan atau fitur, dan kemudian berganti kembali lagi setelah selesai.

Pengujian yang Dipercepat

Ini membuatnya lebih mudah untuk melibatkan stakeholders non-teknis dalam ulasan dan pengambilan keputusan, sambil menjaga alur kerja tetap lancar. Satu buil produksi menjadi alat yang fleksibel untuk pengujian, umpan balik, dan validasi.

Penggunaan Kasus

  • Pengujian QA: Biarkan tim QA berganti antara cabang fitur
  • Program Beta: Pengguna memilih channel beta untuk akses awal
  • Ulasan Stakeholder: Pemilik produk memperbarui perubahan sebelum rilis
  • Pengujian A/B: Pengguna diberi channel yang berbeda untuk eksperimen
  • Pengujian Debug: Switch pengguna spesifik ke channel debug untuk mendiagnosis masalah

Pengujian Perbandingan: Metode Perubahan Channel

Metode Waktu Efek Dimana Tertahan Kasus Penggunaan
setChannel() plugin Instan Hanya Perangkat (Local) Pengguna Menginisiasi Perubahan Saluran Dalam Aplikasi
Dashboard Pengaturan Perangkat Sampai 2 Menit Database Backend Pengaturan Admin untuk Perangkat Tertentu
API Pengaturan Saluran Sampai 2 Menit Database Backend Integrasi Backend Otomatis

Untuk pengalaman pengguna terbaik saat membuat UI switching channel, selalu gunakan metode plugin’s setChannel() Praktik Terbaik

Batasi Akses

  1. Akses TerbatasMengakses Channel biasanya digunakan untuk keperluan internal - jangan membuatnya tersedia untuk semua pengguna
  2. Tangani KesalahanSelalu tangani kesalahan dengan sopan ketika berganti saluran
  3. Mengvalidasi KompatibilitasPastikan pembaruan pada berbagai saluran kompatibel dengan versi native yang terinstal.
  4. Dokumentasi SaluranDokumentasikan dengan jelas apa tujuan setiap saluran
  5. Monitor Penggunaan: Mengikuti perangkat mana yang berada di mana-mana saluran untuk debugging

Pengembangan

Conclusion

Channel surfing transforms how you can iterate on your Capacitor app. Instead of treating production builds as fixed endpoints, they become flexible tools for testing, validation, and rapid iteration.

Surfing saluran mengubah cara Anda dapat mengiterasi pada aplikasi __CAPGO_KEEP_0__ Anda. Sebaliknya, bangunan produksi menjadi alat-alat fleksibel untuk pengujian, validasi, dan iterasi cepat.

Dengan channel switching instan yang diperkenalkan dalam versi plugin terbaru, pengalaman sekarang menjadi lancar - pengguna dapat beralih ke saluran dan menerima update dari saluran baru tanpa menunggu periode tunggu.

Teruskan dari Channel Surfing untuk Capgo: Cara Mengganti Saluran Pembaruan Waktu Nyata

Jika Anda menggunakan Channel Surfing untuk Capgo: Cara Mengganti Saluran Pembaruan secara Waktu Nyata untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Uji Coba Beta untuk alur kerja produk di Solusi Uji Coba Beta, dan Solusi Target Versi untuk alur produk dalam Solusi Targeting Versi.

Pembaruan Langsung untuk Capacitor Aplikasi

Ketika bug layer web masih hidup, kirimkan perbaikan melalui Capgo daripada menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan pembaruan di latar belakang sementara perubahan native tetap berada di jalur review normal.

Terbaru dari Blog Kami

Capgo memberikan Anda wawasan terbaik yang Anda butuhkan untuk membuat aplikasi mobile profesional yang sebenarnya.