Lompat ke konten utama
Tutorial

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

Kirim perubahan ke pengguna tertentu secara langsung dengan menggunakan saluran pembaruan waktu jalannya Capgo. Ganti saluran pembaruan tanpa harus menginstal ulang aplikasi Capacitor Anda.

Martin Donadieu

Martin Donadieu

Spesialis Konten

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

Apakah Anda pernah berharap dapat mengirimkan perubahan langsung kepada 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 pembaruan ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (pekerjaan untuk kedua kita).

Yang kurang adalah fleksibilitas. Pengembang ingin dapat menyajikan pembaruan yang berbeda-beda kepada kelompok pengguna yang berbeda, seperti stakeholders non-teknis, QA, atau pengguna seluruhnya ketika tepat.

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

Yaitu apa yang membuat channel surfing mengizinkan. Aplikasi yang diinstal pada perangkat pengguna dapat mengubah saluran pembaruan pada waktu runtime, mengubah aplikasi produksi menjadi ruang yang 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 diterimanya.

Contoh, Anda dapat menerbitkan pembaruan ke preview saluran tanpa mempengaruhi pengguna di production. Dalam masa lalu, mengubah saluran memerlukan menginstal bangunan native yang berbeda atau secara manual mengubah pengaturan perangkat melalui dashboard.

Saluran di Capgo memungkinkan Anda untuk:

  • Mengarahkan kelompok pengguna tertentu dengan fitur yang berbeda
  • Menggunakan A/B test dengan mengasosiasikan pengguna ke saluran yang berbeda
  • Mengadakan perkenalan perangkat lunak baru secara bertahap
  • 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.

Apa itu Channel Surfing?

Channel surfing memungkinkan aplikasi yang terpasang untuk mengambil dari berbagai aliran pembaruan tanpa harus menginstal ulang. Aplikasi yang terpasang dapat beralih ke saluran pembaruan yang berbeda pada waktu runtime, dan akan terus menerima pembaruan dari saluran pembaruan yang baru dipilih hingga aplikasi di-uninstall atau beralih ke saluran pembaruan lainnya.

Dalam prakteknya, ini berarti pemilik produk atau QA dapat beralih aplikasi production ke, misalnya, preview saluran pembaruan, mencoba perubahan terbaru. Ketika mereka selesai melakukan tes, mereka beralih kembali ke production lagi. Tidak perlu melakukan reinstall atau membuat build preview yang terpisah.

Di bawah kerangka kerja, channel surfing bekerja dengan memungkinkan aplikasi memberitahu klien pembaruan mana saluran pembaruan yang harus digunakan. Pilihan tersebut dapat diubah pada waktu runtime dan tetap berlaku hingga diganti atau dihapus.

Bagaimana Menerapkan 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 code atau modifikasi konfigurasi yang diperlukan di luar itu.

Di intinya, channel surfing dikendalikan oleh satu API panggilan:

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

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

Fungsi ini menetapkan channel yang digunakan ketika melakukan kueri Capgo untuk update. Pelajari lebih lanjut tentang setChannel API.

Pindah 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 berbeda dan lebih cepat:

  1. Validasi Backend (hanya baca): Permintaan dikirim ke backend Capgo untuk memvalidasi apakah saluran tersebut diizinkan
  2. Pembaruan Penyimpanan Lokal: Jika validasi berhasil, saluran tersebut disimpan ke penyimpanan lokal perangkat
  3. Efek Instan: Pemeriksaan update selanjutnya menggunakan saluran baru secara langsung

Sebelumnya, setChannel() mengsimpan pengaturan 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 menjadi 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 memeriksa update secara langsung, mengunduh jika tersedia, dan memuat ulang aplikasi sehingga pengguna langsung berada di update saluran yang dipilih.

Alur yang Umum

  1. Mengubah saluran (setChannel)
  2. Periksa untuk memperbarui (getLatest)
  3. Ambil dan terapkan pembaruan (download, set atau next)
  4. Muat ulang 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 semua sekaligus. Terlepas dari bagaimana Anda mengatur alur, pastikan untuk mempertimbangkan kegagalan. Masalah jaringan atau saluran yang tidak valid dapat mencegah pembaruan dari diterapkan.

Syarat Hanya: Aktifkan Penugasan Sendiri

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

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

Mengaktifkan pengasosiasi sendiri di pengaturan saluran

Itu saja. Tidak perlu mengubah konfigurasi di aplikasi Anda. Tidak defaultChannel pengaturan diperlukan. Cukup aktifkan pengasosiasi sendiri pada saluran yang ingin pengguna dapat berganti.

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

Daftar Saluran yang Tersedia

Anda dapat mengambil daftar saluran yang tersedia untuk penugasan 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 penugasan 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 Default

Untuk menghapus penugasan saluran dan kembali ke saluran default:

await CapacitorUpdater.unsetChannel({});

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

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 memuat JavaScript dari server pengembangan, yang menghindari alur pembaruan normal.

Persyaratan Sebelumnya

Persyaratan tunggal untuk channel surfing adalah mengaktifkan “Izinkan perangkat untuk berasosiasi secara mandiri” pada setiap channel yang ingin Anda izinkan untuk berganti. Tidak ada perubahan konfigurasi yang diperlukan di aplikasi Anda.

Membuat Build Uji

Buat aplikasi Anda seperti biasa:

bun run build && npx cap sync

Kemudian buatlah build native menggunakan Xcode atau Android Studio, atau gunakan pipeline CI/CD Anda. Aplikasi akan memulai pada channel yang ditetapkan sebagai default cloud di dashboard Capgo Anda.

Mengirimkan Perbaruan ke Berbagai Channel

Setelah aplikasi diinstal, kirimkan perbaruan ke berbagai channel:

# 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 channel surfing di aplikasi dan trigger switch channel. Aplikasi harus mengambil perbaruan dari channel yang dipilih dan memuat ulang ke update baru.

Membuat UI Switcher Channel

Channel surfing biasanya merupakan sesuatu yang ingin Anda terbatas pada pengguna tertentu, bukan pada semua pengguna yang menggunakan aplikasi Anda. Misalnya, Anda mungkin memiliki tombol yang tersedia hanya untuk karyawan yang terautentikasi saja yang mengganti aplikasi ke channel pra-rilis.

Contoh Komponen React untuk Switcher Channel:

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>
  );
}

Peringatan Pembaruan OTA

Tidak ada di antara ini yang spesifik untuk mengemudi saluran, tetapi mereka cenderung menjadi jelas dengan cepat setelah Anda mulai mengganti saluran secara waktu eksekusi.

Perbedaan Versi Waktu Eksekusi

Pembaruan di Capgo terkait dengan versi aplikasi asli. Jika versi asli dari pembaruan tidak cocok dengan versi asli dari aplikasi yang terpasang, pembaruan tidak akan didownload atau diterapkan. Ketika mengemudi saluran, hal ini biasanya muncul sebagai aplikasi yang berganti saluran tetapi tidak ada pembaruan yang diterapkan, meskipun ada di saluran tersebut.

Perlu diingat bahwa pembaruan biasanya dipublikasikan dari versi asli aplikasi yang berbeda. Pastikan bundle saluran Anda kompatibel dengan versi asli yang terpasang di perangkat.

Penghapusan atau Mengembalikan Pembaruan

Jika aplikasi telah mendownload pembaruan untuk saluran, menghapus pembaruan dari dashboard Capgo tidak akan menghapusnya dari perangkat yang sudah memiliki pembaruan tersebut. Penghapusan hanya akan menghentikan mendownload Jalan terbaik untuk mengembalikan pembaruan yang salah adalah dengan mempublikasikan pembaruan yang terbukti baik ke saluran yang sama. Hal ini akan membuat pembaruan baru di atas sejarah saluran, yang akan dianggap sebagai versi terbaru dan diterapkan oleh klien.

__CAPGO_KEEP_0__ juga menyediakan mekanisme pengembalian 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.

__CAPGO_KEEP_0__

Berubah ke saluran lain akan mengubah bundle JavaScript yang dijalankan aplikasi. Jika aplikasi Anda bergantung pada migrasi atau bentuk data yang tidak kompatibel di antara saluran, berubah kembali dan ke depan mungkin akan menyebabkan masalah.

Contoh, jika pembaruan beta menerapkan migrasi database, versi produksi mungkin tidak memahami skema baru. Pengembang harus memastikan pembaruan tetap aman untuk berubah di antara atau membatasi berubah ke satu arah ketika diperlukan.

Mengapa Channel Surfing Meningkatkan Iterasi Mobile

Channel surfing sangat berguna ketika Anda membutuhkan review perubahan cepat di lingkungan produksi.

Pengujian Cepat

Bayangkan perbaikan bug yang mendesak yang membutuhkan validasi 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

Pemilik produk atau QA dapat mengubah instalasi produksi mereka ke saluran update lain, memverifikasi perbaikan atau fitur, dan kemudian kembali lagi setelah selesai.

Pengujian yang Dipercepat

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

Penggunaan Kasus

  • Pengujian QA: Biarkan tim QA beralih antara cabang fitur
  • Beta Program: Pengguna memilih untuk bergabung dengan saluran beta untuk akses awal
  • Tinjauan Stakeholder: Pemilik produk memperlihatkan perubahan sebelum rilis
  • Pengujian A/B: Tugaskan pengguna ke saluran yang berbeda untuk eksperimen
  • Pengujian Debug: Switch pengguna tertentu ke saluran debug untuk mendiagnosis masalah

Pengujian Perbandingan: Metode Perubahan Saluran

Metode Waktu Efek Dipertahankan Dimana Penggunaan Kasus
setChannel() dari plugin Instan Hanya Perangkat (local) Penggantian saluran pengguna di dalam aplikasi
Dashboard penggantian perangkat Hingga 2 menit Database Backend Perubahan admin yang ditentukan untuk perangkat tertentu
API Pengasasan Saluran Hingga 2 menit Database Backend Integrasi Backend Otomatis

Untuk pengalaman pengguna yang terbaik ketika membangun UI pengganti saluran, selalu gunakan metode plugin. setChannel() Praktik Terbaik

Hindari Akses

  1. : Biasanya channel surfing digunakan untuk pengguna internal - jangan terlalu banyak menggunakannyaHandling Kesalahan
  2. : Selalu tangani kesalahan dengan baik ketika mengganti saluranValidasi Kompatibilitas
  3. : Pastikan update pada saluran yang berbeda kompatibel dengan versi native yang terpasangDokumentasi Saluran
  4. __CAPGO_KEEP_0__: Dokumentasikan dengan jelas apa tujuan setiap saluran
  5. Pantau Penggunaan: Track perangkat mana yang berada di mana saluran untuk debugging

Sumber Daya

Kesimpulan

Penggemar saluran mengubah cara Anda dapat beriterasi pada aplikasi Capacitor Anda. Sebaliknya dari menganggap versi produksi sebagai titik akhir yang tetap, mereka menjadi alat 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 perbarui dari saluran baru tanpa menunggu periode apa pun.

Apakah Anda memvalidasi perbaikan bug dengan stakeholder, menjalankan program beta, atau debugging masalah dengan pengguna tertentu, penggemar saluran memberikan fleksibilitas untuk mengirimkan perbarui yang tepat kepada pengguna yang tepat pada waktu yang tepat.

Teruslah dari Channel Surfing untuk Capgo: Cara Mengganti Saluran Perbarui secara Real-Time

Jika Anda menggunakan Channel Surfing untuk Capgo: Cara Mengganti Saluran Perbarui secara Real-Time 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 kerja produk di Solusi Target Versi.

Update Langsung untuk Capacitor apps

Ketika bug layer web masih aktif, kirimkan perbaikan melalui Capgo daripada menunggu hari-hari untuk persetujuan toko aplikasi.

Mulai Sekarang

Terbaru dari Blog Kami

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