Beralih ke konten utama
Tutorial

Mengembara di Saluran untuk Capgo: Cara Mengganti Saluran Pembaruan secara Waktu Jalannya

Kirim perubahan ke pengguna tertentu secara langsung dengan Capgo's penggantian saluran waktu jalannya. Ganti saluran pembaruan tanpa harus menginstal kembali aplikasi Capacitor Anda.

Martin Donadieu

Martin Donadieu

Pengembang Konten

Mengembara di Saluran untuk Capgo: Cara Mengganti Saluran Pembaruan secara Waktu Jalannya

Apakah Anda pernah berharap dapat mengirimkan perubahan secara 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 telah memiliki pelanggan yang meminta perbaikan yang saya dapatkan dengan cepat, tetapi mendapatkan hasilnya ke tangan mereka untuk memvalidasi berarti mengirimkan pembaruan ke semua pengguna (risiko untuk perubahan eksperimental) atau membuat versi satu-satunya untuk pelanggan (tugas untuk kedua-duanya).

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

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

Channel surfing itu yang memungkinkan. 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_KEEP_0__ menargetkan pembaruan ke build tertentu. Setiap build terkait dengan saluran, dan saluran tersebut menentukan pembaruan apa yang akan diterima.

Update channels are how Capgo targets updates to specific builds. Each build is associated with a channel, and that channel determines which updates it will receive.

saluran tanpa mempengaruhi pengguna di preview Di masa lalu, beralih ke saluran memerlukan menginstal build native yang berbeda atau mengubah pengaturan perangkat secara manual melalui dashboard. productionSaluran di __CAPGO_KEEP_0__ memungkinkan Anda:

Channels in Capgo allow you to:

  • Menggunakan A/B test dengan mengalokasikan pengguna ke saluran yang berbeda
  • Mengadakan perkenalan secara bertahap
  • __CAPGO_KEEP_0__
  • 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 menarik pembaruan 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 pembaruan yang baru dipilih hingga aplikasi di-uninstall atau berganti ke saluran pembaruan lain.

Dalam prakteknya, ini berarti pemilik produk atau QA dapat berganti build ke, misalnya, saluran pembaruan tertentu, mencoba perubahan terbaru. Ketika mereka selesai tes, mereka dapat berganti kembali ke saluran pembaruan asli. Tidak perlu melakukan reinstall atau membuat build preview terpisah. production Di bawah kerangka kerja, channel surfing bekerja dengan memungkinkan aplikasi memberitahu klien pembaruan mana saluran pembaruan yang harus digunakan. Pilihan tersebut dapat diubah secara waktu eksekusi dan tetap berlaku hingga dihapus atau diganti. preview Buat program tes beta production Debug masalah produksi dengan pengguna individu

Jika Anda tidak familiar dengan saluran pembaruan, maka saluran pembaruan adalah hal yang sangat penting dalam pengembangan aplikasi. Anda dapat membaca lebih lanjut tentang saluran pembaruan di halaman ini.

Cara Mengimplementasikan Pemutaran Saluran

Sebelum Anda dapat mencoba pemutaran saluran, proyek Anda harus dikonfigurasi dengan Capgo Aktivitas Hidup. Untuk mengatur hal itu, ikuti panduan Capgo cepat Pengaturan yang hanya diperlukan untuk pemutaran saluran adalah mengaktifkan "Mengizinkan perangkat untuk mengasosiasi sendiri" pada setiap saluran yang ingin Anda ubah ke dalam Capgo dashboard..

Tidak ada perubahan atau modifikasi konfigurasi Capgo yang diperlukan di luar itu. Pada dasarnya, pemutaran saluran dikendalikan oleh satu panggilan code:

Ini menetapkan saluran yang digunakan ketika mengakses API untuk memperbarui.

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

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

Pelajari lebih lanjut tentang fungsi setChannel Capgo Learn more about the setChannel API.

Mulai dari versi plugin 5.34.0, 6.34.0, 7.34.0, atau 8.0.0

tergantung pada versi utamanya, berfungsi dengan cara yang berbeda dan lebih cepat: setChannel() Cara ini lebih cepat karena tidak memerlukan waktu tunggu untuk mengakses saluran baru.

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

Sebelumnya, setChannel() channel override disimpan ke database backend (seperti Dashboard atau API perubahan). Perangkat harus menunggu replikasi backend (sampai 2 menit) sebelum channel baru diakui. perilaku baru hanya membaca dari backend (untuk validasi) dan menyimpan secara lokal, sehingga perubahan channel menjadi instan.

Alur Penuh Switching Channel

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

Alur yang biasanya seperti ini:

  1. Ganti channel (setChannel)
  2. Periksa update (getLatest)
  3. Fetch dan terapkan update (download, set atau next)
  4. context:HTML teks fragmen dari string Capgo UI yang lebih panjang (parent key `alternatives_cta_questions`). Halaman/area: Halaman perbandingan alternatif Capacitor live-update. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman alternatives.astro. Simpan Capgo produk/merek dan istilah pengembang secara tepat. Kunci pesan `alternatives_cta_questions` (Alternatif CTA Pertanyaan). | HTML teks fragmen dari string Capgo UI yang lebih panjang (parent key `appflow_cta_questions`). Halaman/area: Halaman perbandingan/migrasi pemasaran Appflow. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman ionic-appflow.astro. Simpan Capgo produk/merek dan istilah pengembang secara tepat. Kunci pesan `appflow_cta_questions` (Appflow CTA Pertanyaan). | HTML teks fragmen dari string Capgo UI yang lebih panjang (parent key `capwesome_cta_questions`). Halaman/area: Halaman perbandingan Capawesome. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman capwesome.astro. Simpan Capgo produk/merek dan istilah pengembang secara tepat. Kunci pesan `capwesome_cta_questions` (Capwesome CTA Pertanyaan). | Halaman/area: Halaman layanan konsultasi. Peran: Judul atau tagline bagian. Dilihat di: halaman consulting.astro. Simpan Capgo produk/merek dan istilah pengembang secara tepat. Kunci pesan `consulting_faq_subtitle` (Layanan Konsultasi FAQ Judul). | Halaman/area: Halaman perbandingan/migrasi pemasaran Appflow. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman ionic-appflow.astro, halaman ionic-enterprise-plugins.astro, halaman solusi/ionic-enterprise-plugins.astro. Kunci pesan `appflow_plugins_or` (Appflow Plugin Atau).reload)

Muat ulang aplikasi jika perlu (

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

Contoh lengkap ini:

Bagaimana Anda mengatur alur ini adalah pilihan Anda. Anda mungkin membagi langkah-langkah ini di antara interaksi yang lebih banyak atau menjalankannya semua sekaligus. Terlepas dari bagaimana Anda mengatur alur, pastikan untuk mengakomodasi gagal. Masalah jaringan atau saluran yang tidak valid dapat semua mencegah update dari diterapkan.

Satu-Satunya Syarat: Aktifkan Penugasan Sendiri Ini adalah satu-satunya hal yang perlu Anda lakukan untuk mengaktifkan channel surfing. setChannel(), you must enable self-assignment for that channel in the Capgo dashboard:

  1. , Anda harus mengaktifkan penugasan sendiri untuk saluran tersebut di dashboard __CAPGO_KEEP_0__: Pergi ke halaman bagian dalam Capgo dashboard Anda
  2. Klik pada 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 yang 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

Ini 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 yang diubah dan kembali ke saluran default:

await CapacitorUpdater.unsetChannel({});

Ini melepas perangkat dari saluran yang ditugaskan secara spesifik, sehingga jatuh kembali ke saluran defaultChannel dalam 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

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

Membuat Build Uji

Membuat aplikasi Anda seperti biasa:

bun run build && npx cap sync

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 cloud di dashboard Capgo Anda.

Mengirimkan Perbarui ke Berbagai Channel

Setelah aplikasi diinstal, kirimkan perbarui 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 browsing di aplikasi dan trigger beralih channel. Aplikasi harus mengambil perbarui dari channel yang dipilih dan memuat ulang ke perbarui baru.

Membuat UI Beralih Channel

Channel browsing 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 untuk karyawan yang terautentikasi saja yang mengaktifkan aplikasi ke channel preview.

Contoh Komponen React untuk Beralih 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 Update OTA

Tidak ada yang spesifik terkait channel surfing, tetapi hal-hal ini biasanya muncul dengan cepat ketika Anda mulai mengganti channel secara waktu eksekusi.

Perbedaan Versi Waktu Eksekusi

Update di Capgo terkait dengan versi aplikasi native. Jika versi native dari update tidak sesuai dengan versi native dari aplikasi yang terpasang, update tidak akan didownload atau diterapkan. Ketika channel surfing, hal ini biasanya muncul sebagai aplikasi yang berganti channel tapi tidak ada update yang diterapkan, meskipun ada update di channel tersebut.

Biasanya berarti update tersebut dipublikasikan dari versi native aplikasi yang berbeda. Pastikan bundle channel Anda kompatibel dengan versi native yang terpasang di perangkat.

Menghapus atau Membatalkan Update

Jika aplikasi sudah mendownload update untuk channel tertentu, menghapus update dari dashboard Capgo tidak akan menghapusnya dari perangkat yang sudah memiliki update tersebut. Penghapusan hanya akan menghentikan downloadan masa depan. Cara yang paling dapat diandalkan untuk membatalkan update yang salah adalah dengan mempublikasikan update yang sudah terbukti baik ke channel yang sama. Ini akan membuat update baru di atas sejarah channel, yang akan dianggap sebagai versi terbaru dan diterapkan oleh klien.

__CAPGO_KEEP_0__ juga menyediakan mekanisme rollback yang dapat menginstruksikan klien untuk mengaplikasikan update stabil sebelumnya atau kembali ke update yang terintegrasi 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__

Berpindah antara saluran mengubah bundle JavaScript yang dijalankan aplikasi. Jika aplikasi Anda bergantung pada migrasi atau bentuk data yang tidak kompatibel di antara saluran, berpindah maju mundur dapat menyebabkan masalah.

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

Mengapa Channel Surfing Meningkatkan Iterasi Mobile

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

Pengujian Cepat

Bayangkan perbaikan bug yang mendesak yang memerlukan validasi sebelum diimplementasikan secara luas. Dengan channel surfing, perubahan dapat diisolasi ke dalam sekelompok pengguna yang ditunjuk yang dapat meninjau perubahan sebelum mencapai produksi.

Peninjauan Stakeholder

Seseorang yang bertanggung jawab atas produk atau QA dapat berpindah ke versi produksi yang diinstal ke saluran update lain, memverifikasi perbaikan atau fitur, dan kemudian kembali lagi setelah selesai.

Pengujian yang Dipercepat

Ini membuatnya lebih mudah untuk melibatkan stakeholder non-teknis dalam peninjauan dan pengambilan keputusan, sambil menjaga alur kerja tetap lancar. Versi produksi tunggal menjadi alat yang fleksibel untuk pengujian, umpan balik, dan validasi.

Penggunaan Kasus

  • Peran: Judul bagian atau halaman. Dilihat di: halaman solusi/pengujian-betanya. Pesan kunci `solutions_beta_testing_usecases_title` (Judul Penggunaan Kasus Pengujian Beta Solusi). | Peran: Label UI. Dilihat di: halaman solusi/qsr. Pesan kunci `solutions_qsr_usecases_label` (Label Penggunaan Kasus Qsr Solusi). : Tim QA dapat berganti antara cabang fitur
  • Program Beta : Pengguna memilih untuk bergabung dengan saluran beta untuk akses awal
  • Ulasan Stakeholder : Pemilik produk memperlihatkan perubahan sebelum rilis
  • Pengujian A/B : Menugaskan pengguna ke saluran yang berbeda untuk eksperimen
  • Pengujian : Berganti pengguna tertentu ke saluran debug untuk mendiagnosis masalah

Perbandingan: Metode Perubahan Saluran

Metode Waktu Efek Pertahankan Dimana Penggunaan Kasus
setChannel() Kasus Penggunaan dari plugin Instan Hanya Perangkat (Local)
Pindah Saluran Pengguna di Aplikasi Dashboard Penggantian Perangkat Sampai 2 menit Database Backend
API channel assignment Penugasan Saluran __CAPGO_KEEP_0__ Database Backend Integrasi Backend Otomatis

Untuk pengalaman pengguna yang terbaik saat membangun UI switching channel, selalu gunakan metode plugin. setChannel() Praktik Terbaik

Batasi Akses

  1. : Penggunaan channel surfing biasanya untuk pengguna internal - jangan terlalu banyak menggunakannyaHandle Error
  2. : Selalu tangani kesalahan dengan baik saat mengganti channelValidasi Kompatibilitas
  3. : Pastikan update pada channel yang berbeda kompatibel dengan versi native yang terpasangDokumentasi Channel
  4. Backend databaseJaga Dokumentasi yang Jelas tentang Tujuan Setiap Saluran
  5. Pantau PenggunaanJalankan Saluran yang Menggunakan Perangkat Mana Saja untuk Debugging

Sumber Daya

Kesimpulan

Surfing Saluran Mengubah Cara Anda Mengiterasi Aplikasi Capacitor Anda. Sebaliknya dari menganggap Build Produksi sebagai Endpoint Tetap, Mereka Menjadi Alat Fleksibel untuk Pengujian, Validasi, dan Iterasi Cepat.

Dengan Channel Switching Instan yang Diperkenalkan dalam Versi Plugin Terbaru, Pengalaman Sekarang Sudah Lancar - Pengguna Bisa Mengganti Saluran dan Mendapatkan Update dari Saluran Baru Tanpa Menunggu Waktu Tertentu.

Apakah Anda Validasi Perbaikan Bug dengan Stakeholder, Menggunakan Program Beta, atau Mengdebug Masalah dengan Pengguna Spesifik, Surfing Saluran Memberikan Fleksibilitas untuk Mengirimkan Update yang Tepat ke Pengguna yang Tepat pada Waktu yang Tepat.

Teruskan 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 context":"Saluran Rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi)." untuk detail implementasi di Saluran, Saluran context":"Saluran Rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi)." untuk detail implementasi di Saluran, Saluran context":"Saluran Rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi)." Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.

Teruskan dari Channel Surfing untuk Capacitor: Cara Mengubah Saluran Update pada Waktu Jalannya

Ketika bug layer web masih aktif, kirimkan perbaikan melalui Capgo bukan menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan update di latar belakang sementara perubahan native tetap dalam jalur review normal.

Dukungan manusia dari Martin

Mulai Sekarang

Terbaru dari Blog Kami

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