Lompat ke konten

Saluran

Saluran Update Langsung menunjuk ke bundle build JS tertentu dari aplikasi Anda yang akan dibagikan dengan perangkat apa pun yang telah dikonfigurasi untuk mendengarkan saluran tersebut untuk pembaruan. Ketika Anda install the Capgo Pembaruan Hidup SDK dalam aplikasi Anda, setiap biner native yang dikonfigurasi ke saluran tersebut akan memeriksa pembaruan yang tersedia setiap kali aplikasi dijalankan. Anda dapat mengubah saluran yang dituju pada saat apapun dan juga dapat kembali ke versi sebelumnya jika perlu.

Saat perangkat memeriksa pembaruan, Capgo memutuskan saluran yang digunakan dalam urutan ini yang ketat (prioritas tertinggi terlebih dahulu):

  1. Pengaturan perangkat paksa (Dashboard) – Pasang perangkat ID tertentu secara manual ke saluran. Gunakan untuk debugging darurat atau pengujian terkendali dengan pengguna nyata tunggal. Ini selalu menang.
  2. Oversai Cloud (per-perangkat) melalui Dashboard atau API – Dibuat ketika Anda mengubah saluran perangkat di dashboard atau melalui API. Gunakan untuk pengguna QA yang beralih antara saluran fitur / PR atau untuk mereproduksi masalah pengguna. Menginstal ulang biner tidak menghapusnya; menghapus entri perangkat.
  3. Plugin setChannel() saluran lokal – Dibuat ketika aplikasi memanggil setChannel() dan backend memvalidasi bahwa saluran target memungkinkan penugasan sendiri. Saluran yang dipilih disimpan secara lokal pada perangkat tersebut, berlaku segera, dan tidak ditampilkan di UI Oversai Perangkat.
  1. Konfigurasi Capacitor defaultChannel (versi uji default) – Jika ada di capacitor.config.* dan tidak ada saluran paksa/override/local, aplikasi dimulai pada saluran ini (misalnya, ). Intended untuk versi uji / build internal sehingga tester langsung mendarat pada saluran pre-release secara otomatis. Build produksi biasanya meninggalkan ini tidak diatur. beta, qa, pr-123Saluran Default Cloud (jalur utama ~99% pengguna)
  2. – Jika Anda menandai sebuah saluran default di dashboard, semua pengguna normal (tidak paksa, tidak Dashboard/__CAPGO_KEEP_0__ override, tidak plugin local channel, tidak konfigurasi defaultChannel) akan terhubung ke sini. Perubahan ini untuk mengeluarkan atau mengembalikan secara instan—tidak ada binary baru. Jika Anda memiliki default platform khusus (misalnya, satu iOS-only, satu Android-only, satu Electron-only), setiap perangkat akan mendarat pada default yang sesuai dengan platformnya. Meninggalkan saluran default cloud tidak diatur diperbolehkan; dalam hal ini perangkat harus menyesuaikan langkah 1–4 untuk menerima update. API

Praktik terbaik:

  • Tangani 1–4 sebagai kecuali / lapisan pengujian; ketika Anda menetapkan default cloud, pengguna nyata harus mengalir ke dalamnya. Jika Anda memilih tidak menetapkan satu, jadilah sadar tentang bagaimana pengguna menghubungkan (biasanya melalui defaultChannel dalam konfigurasi atau pengaturan per-device).
  • Hanya konfigurasi defaultChannel dalam biner yang Anda kirim secara eksplisit kepada tester. Menyimpannya tidak terdefinisi menjaga logika produksi sentral di dashboard.
  • Pakai setChannel() sangat jarang dalam produksi—utamanya untuk QA atau diagnostik sasaran.

Jika sebuah saluran dinonaktifkan untuk platform (iOS/Android/Electron toggle) ketika akan dipilih, proses seleksi melompatinya dan melanjutkan ke bawah daftar.

Ringkasan: Paksa > Dashboard/API Override > Plugin setChannel() saluran lokal > Konfigurasi defaultChannel > Default Cloud.

Pengaturan awan default tidak wajib, tetapi biasanya berfungsi sebagai jalur default untuk perangkat baru. Tanpa satu, hanya perangkat yang sesuai dengan peta paksa, penggantian, atau defaultChannel di konfigurasi Capacitor yang akan menerima pembaruan. Ketika Anda memilih untuk menandai default, ingatlah pola-pola berikut:

  • Pengaturan default tunggal (yang paling umum) – Jika sebuah channel memiliki iOS, Android, dan Electron diaktifkan, maka menjadi default tunggal; perangkat tanpa penggantian akan menempel di sini.
  • Pengaturan default khusus platform – Jika Anda memisahkan channel berdasarkan platform (misalnya ios-production dengan hanya iOS diaktifkan, android-production dengan hanya Android diaktifkan, dan electron-production dengan hanya Electron diaktifkan), tandai setiap satu sebagai default untuk platformnya. Perangkat iOS pergi ke default iOS, perangkat Android pergi ke default Android, dan aplikasi Electron pergi ke default Electron.

Ingatlah bahwa default awan dan defaultChannel di capacitor.config.* keduanya mengisi lapisan keputusan yang sama. Jika Anda menetapkan nilai awal cloud, Anda tidak perlu mengulang nilai tersebut di konfigurasi Capacitor Anda—biarkan defaultChannel kosong untuk pembangunan produksi. Simpan defaultChannel untuk file biner yang Anda sengaja kirimkan kepada tester atau QA ketika Anda ingin mereka memulai di saluran non-produksi meskipun nilai awal cloud berbeda

Anda dapat mengubah nilai default kapan saja di dashboard. Ketika Anda mengganti nilai default, perangkat baru mengikuti aturan routing baru segera dan perangkat yang sudah ada mengikuti aturan keutamaan normal saat mereka memeriksa kembali

Pada saat onboard, Anda membuat saluran pertama (banyak tim menamainya ā€œProduksiā€), tetapi tidak ada yang terkunci—Anda dapat menamai atau menghapus saluran apa pun kapan saja. Untuk menambahkan saluran tambahan kemudian:

  1. Kunjungi bagian ā€œSaluranā€ di dashboard Capgo
  2. Klik tombol ā€œSaluran Baruā€
  3. Masukkan nama saluran dan klik ā€œBuatā€

Nama saluran dapat apa saja yang Anda inginkan. Strategi umum adalah untuk menyesuaikan nama saluran dengan tahapan pengembangan, seperti:

  • Development - untuk menguji pembaruan hidup di perangkat lokal atau emulator
  • QA - untuk tim QA Anda untuk memverifikasi pembaruan sebelum rilis yang lebih luas
  • Staging - untuk tes akhir di lingkungan yang mirip produksi
  • Production - untuk versi aplikasi yang diterima pengguna akhir dari toko aplikasi

Dengan saluran Anda yang dibuat, Anda perlu mengonfigurasi aplikasi Anda untuk mendengar saluran yang tepat. Dalam contoh ini, kita akan menggunakan saluran. Development saluran.

Buka file Anda capacitor.config.ts (atau capacitor.config.json) di editor Anda. Di bawah bagian plugins opsionalnya atur defaultChannel __CAPGO_KEEP_0__ tes build (internal / QA). Untuk build produksi, prefer menghilangkannya agar perangkat menggunakan Default Cloud kecuali secara eksplisit diatur.

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
// For a QA/TestFlight build – testers start on the Development channel automatically.
defaultChannel: 'Development',
// Production builds usually omit this so users attach to the Cloud Default channel.
},
},
};

Selanjutnya, bangun aplikasi web Anda dan jalankan npx cap sync untuk menyalin file konfigurasi yang diperbarui ke proyek iOS, Android, dan Electron Anda. Jika Anda melewatkan langkah sinkronisasi ini, proyek native Anda akan terus menggunakan saluran yang sebelumnya dikonfigurasi.

Saluran memiliki beberapa opsi yang mengontrol siapa yang dapat menerima update dan bagaimana update disampaikan. Opsi-opsi yang paling penting adalah di bawah. Anda dapat mengonfigurasi hal-hal ini dari aplikasi web, CLI, atau Public API.

  • Saluran default: Opsional untuk menandai saluran atau saluran spesifik platform yang perangkat baru terhubung ke. Lihat ā€œPengaturan Saluran Defaultā€ untuk skenario routing.
  • Pengatur filter platform: Aktifkan atau nonaktifkan pengiriman ke iOS, Android, atau Electron perangkat per saluran.
  • Nonaktifkan auto downgrade di native: Menghalangi pengiriman update ketika versi aplikasi native perangkat lebih baru daripada bundle saluran (misalnya, perangkat pada 1.2.3 sementara saluran memiliki 1.2.2).
  • Permitir build pengembangan: Izinkan update ke build pengembangan (bermanfaat untuk testing).
  • Permitir perangkat emulator: Izinkan update ke perangkat emulator/simulator (bermanfaat untuk testing).
  • Biarkan perangkat melakukan penugasan sendiri: Biarkan aplikasi beralih ke saluran ini pada waktu eksekusi menggunakan setChannelJika dinonaktifkan, setChannel akan gagal untuk saluran ini.

Gunakan ini untuk membatasi jenis-jenis perbarui yang akan disampaikan secara otomatis. Pilihan:

  • utama: Menghalangi paket sasaran yang versi mayor lebih tinggi dari dasar native perangkat (version_build). Contoh: 1.2.3 -> 2.0.0 ditolak; 1.2.3 -> 1.9.0 diperbolehkan.
  • minor: Menghalangi paket sasaran yang versi mayor atau minor berbeda dari version_build. Contoh: 1.2.3 -> 1.3.0 terblokir; 1.2.3 -> 1.2.4 diperbolehkan.
  • patch: Mode paling ketat. Menghalangi perubahan apa pun pada nomor mayor, minor, atau patch. Perubahan sufiks saja yang diizinkan sementara MAJOR.MINOR.PATCH tetap identik. Contoh: 1.0.0-beta.1 -> 1.0.0-beta.2 diperbolehkan, 1.0.0+build.1 -> 1.0.0+build.2 diperbolehkan, 1.0.0 -> 1.0.1 terblokir.
  • metadata: Tuntut versi update minimum metadata pada setiap bundle. Konfigurasi melalui CLI menggunakan --min-update-version atau --auto-min-update-version. Jika tidak ada, saluran tersebut akan ditandai tidak terkonfigurasi dan update akan ditolak sampai diatur.
  • tidak ada: Izinkan semua update sesuai dengan kompatibilitas semver.

Strategi ini membandingkan bundle target saluran dengan baseline asli yang dikirim sebagai version_builddan bukan bundle yang diunduh saat ini yang dikirim sebagai version_name.

Pelajari lebih lanjut dan contoh di strategi Non-aktifkan update di /docs/cli/perintah/#non-aktifkan-update-strategi.

Contoh (CLI):

Jendela terminal
# Block major updates on the Production channel
npx @capgo/cli@latest channel set production com.example.app \
--disable-auto-update major
# Allow devices to self-assign to the Beta channel
npx @capgo/cli@latest channel set beta com.example.app --self-assign

Saluran setChannel() Metode ini memungkinkan aplikasi Anda untuk berganti saluran secara programatis pada waktu runtime. Hal ini sangat berguna untuk:

  • Menu QA/debug di mana tester dapat berganti antara saluran
  • Alur pilihan beta untuk mengaktifkan saluran
  • Implementasi flag fitur
  • Skenario uji A/B
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Switch to the beta channel
await CapacitorUpdater.setChannel({ channel: 'beta' });
// Optionally trigger an immediate update check after switching
await CapacitorUpdater.setChannel({
channel: 'beta',
triggerAutoUpdate: true
});

Untuk mengaktifkan pembaruan live, Anda perlu mengunggah bundle JS baru dan mengasosiasikannya ke saluran. Anda bisa melakukannya dalam satu langkah dengan Capgo CLI:

Jendela Terminal
npx @capgo/cli@latest bundle upload --channel=Development

Ini akan mengunggah aset web yang dibangun dan mengatur bundle baru sebagai build aktif untuk saluran. Aplikasi-aplikasi yang dikonfigurasi untuk mendengarkan saluran tersebut akan menerima pembaruan pada saat mereka memeriksa pembaruan berikutnya. Development Anda juga bisa mengasosiasikan build ke saluran dari bagian ā€œPaketā€ di __CAPGO_KEEP_0__ dashboard. Klik ikon menu di samping build dan pilih ā€œAsosiasi ke Saluranā€ untuk memilih saluran untuk build tersebut.

You can also assign builds to channels from the ā€œBundlesā€ section of the Capgo dashboard. Click the menu icon next to a build and select ā€œAssign to Channelā€ to choose the channel for that build.

It’s important to note that bundles in Capgo are global to your app, not specific to individual channels. The same bundle can be assigned to multiple channels.

When versi bundel Anda, kami merekomendasikan menggunakan versi semantik dengan __CAPGO_KEEP_0__’s Semver Tester dan identifikasi pra-rilis untuk bangunan khusus saluran. Misalnya, rilis beta mungkin versi sebagai semantic versioning with Capgo’s Semver Tester Memudahkan komunikasi hubungan antara bangunan. 1.2.3-beta.1.

Jelas bahwa adalah pra-rilis dari

  • Mengizinkan penggunaan nomor versi kembali di saluran, mengurangi kebingungan. 1.2.3-beta.1 Mengaktifkan jalur rollback yang jelas. Jika Anda perlu kembali dari 1.2.3.
  • Anda tahu
  • adalah rilis stabil sebelumnya. 1.2.3Berikut adalah contoh cara Anda mungkin menyesuaikan versi bundel dengan pengaturan saluran yang umum: 1.2.2 saluran:

saluran:

  • Development saluran: 1.2.3-dev.1, 1.2.3-dev.2Menggunakan
  • QA salah satu channel: 1.2.3-qa.1, 1.2.3-qa.2dan lain-lain.
  • Staging salah satu channel: 1.2.3-rc.1, 1.2.3-rc.2dan lain-lain.
  • Production salah satu channel: 1.2.3, 1.2.4dan lain-lain.

Menggunakan semver dengan identifikasi pra-rilis adalah pendekatan yang disarankan, tetapi tidak sepenuhnya diperlukan. Kunci adalah menemukan skema versi yang dengan jelas menyampaikan hubungan antara build Anda dan sejalan dengan proses pengembangan tim Anda. Mengembalikan Perbaruan Hidup

Judul bagian ā€œMengembalikan Perbaruan Hidupā€

Section titled ā€œRolling Back a Live Updateā€

Jika Anda mengaktifkan pembaruan hidup yang memperkenalkan bug atau perlu diubah kembali, Anda dapat dengan mudah kembali ke versi sebelumnya. Dari bagian ā€œSaluranā€ di dashboard:

  1. Klik nama saluran yang ingin Anda kembali
  2. Cari versi yang ingin Anda kembalikan dan klik ikon mahkota Kembalikan versi
  3. Konfirmasi aksi

Versi yang dipilih akan langsung menjadi versi aktif untuk saluran tersebut lagi. Aplikasi akan menerima versi yang dikembalikan pada saat mereka memeriksa pembaruan berikutnya.

Untuk alur kerja yang lebih maju, Anda dapat mengautomasi pembaruan hidup Anda sebagai bagian dari pipeline CI/CD Anda. Dengan mengintegrasikan Capgo ke dalam proses pembangunan Anda, Anda dapat mengunggah bundle baru secara otomatis dan menugaskan mereka ke saluran pada saat Anda push ke cabang tertentu atau membuat rilis baru.

Cek tautan Integrasi CI/CD dokumen untuk mengetahui lebih lanjut tentang mengautomasi pembaruan hidup Capgo.

Sekarang Anda sudah memahami saluran, Anda siap untuk memulai mengirimkan pembaruan hidup ke perangkat nyata. Proses dasar adalah:

  1. Instal Capgo SDK di aplikasi Anda
  2. Konfigurasi aplikasi untuk mendengarkan saluran yang diinginkan Anda
  3. Unggah bangun dan alokasikan ke saluran tersebut
  4. Luncurkan aplikasi dan tunggu pembaruan!

Untuk walkthrough yang lebih rinci, lihat Pembaruan Hidup panduan. Selamat mengupdate!

Saluran dapat digunakan untuk lebih dari hanya tahap pengembangan. Mereka adalah alat yang kuat untuk segmentasi pengguna, memungkinkan fitur seperti:

  • Flag fitur untuk tingkat pengguna yang berbeda
  • Pengujian A/B
  • Rollout fitur secara bertahap
  • Program uji coba beta

Belajar cara menerapkan kasus penggunaan maju ini dalam panduan kami: Bagaimana Membagi Pengguna Berdasarkan Paket dan Saluran untuk Flag Fitur dan Pengujian A/B.

Teruskan dari Saluran

Jika Anda menggunakan

Saluran untuk merencanakan routing saluran dan rollout yang berstadium, hubungkannya dengan Jika Anda menggunakan Saluran untuk merencanakan routing saluran dan rollout yang berstadium, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Uji Beta untuk alur produk di Solusi Uji Beta, Solusi Target Versi untuk alur produk di Solusi Target Versi, dan Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile.