Lompat ke konten

Saluran

Saluran Pembaruan Hidup mengacu pada bangunan bundle JS tertentu dari aplikasi Anda yang akan dibagikan dengan perangkat apa pun yang dikonfigurasi untuk mendengarkan saluran tersebut untuk pembaruan. Ketika Anda menginstal Capgo Pembaruan Hidup SDK dalam aplikasi Anda, setiap biner native yang dikonfigurasi ke saluran tersebut akan memeriksa pembaruan yang tersedia setiap kali aplikasi diluncurkan. Anda dapat mengubah bangunan yang dikaitkan dengan saluran pada saat apapun dan juga dapat kembali ke bangunan sebelumnya jika perlu.

Ketika perangkat memeriksa perbarui, Capgo memutuskan mana saluran yang digunakan dalam urutan ini yang ketat (prioritas tertinggi terlebih dahulu):

  1. Peta perangkat paksa (Dashboard) – Menempelkan ID perangkat tertentu secara manual ke saluran. Gunakan untuk debugging darurat atau pengujian terkendali dengan pengguna nyata tunggal. Ini selalu menang.
  2. Cloud override (per-device) 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 binary tidak menghapusnya; menghapus entri perangkat melakukan.
  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, efektif segera, dan tidak ditampilkan di UI Penggeser Perangkat.
  1. Capacitor konfigurasi defaultChannel (build uji coba default) – Jika ada di capacitor.config.* dan tidak ada paksa/override/kanal lokal, aplikasi dimulai pada kanal ini (misalnya) beta, qa, pr-123. Bisa digunakan untuk build internal / uji coba sehingga tester langsung berada di kanal pre-release. Build produksi biasanya tidak mengatur ini.
  2. Kanal Default Cloud (jalur utama ~99% pengguna) – Jika Anda menandai sebuah kanal default di dashboard, semua pengguna normal (tidak paksa, tidak Dashboard/API override, tidak plugin lokal kanal, tidak konfigurasi defaultChannel) akan menghubungkan ke sini. Perubahan ini dapat dilakukan secara instan—tidak ada binary baru. Jika Anda memiliki default platform khusus (misalnya, satu untuk iOS-saja, satu untuk Android-saja, satu untuk Electron-saja), setiap perangkat akan menghubungkan ke default yang sesuai dengan platformnya. Mengabaikan kanal default cloud tidak diperbolehkan; dalam hal ini, perangkat harus sesuai dengan langkah-langkah 1-4 untuk menerima update.

Praktik terbaik:

  • Tentukan 1-4 sebagai lapisan kecuali / lapisan uji; ketika Anda menetapkan default cloud, pengguna nyata harus mengalir ke dalamnya. Jika Anda tidak menetapkan satu, pastikan Anda sengaja bagaimana pengguna menghubungkan (biasanya melalui) defaultChannel konfigurasi atau pengaturan per-device.
  • Hanya konfigurasi defaultChannel di binary yang Anda kirim secara eksplisit kepada tester. Mengabaikan ini menjaga logika produksi tetap terkonsentrasi di dashboard.
  • Gunakan setChannel() secara berhati-hati di produksi—utamanya untuk QA atau diagnostik yang sasaran.

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

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

Mengatur default cloud tidak wajib, tetapi biasanya berfungsi sebagai jalur utama untuk perangkat baru. Tanpa satu, hanya perangkat yang sesuai dengan pemetaan paksa, override, atau konfigurasi __CAPGO_KEEP_0__ yang akan menerima update. Ketika Anda memilih untuk menandai default, ingatlah pola-pola berikut: defaultChannel in the Capacitor config will receive updates. When you do choose to mark defaults, keep these patterns in mind:

  • – Jika sebuah saluran memiliki iOS, Android, dan Electron diaktifkan, maka menjadi default tunggal; perangkat tanpa override akan menempel di sini. – Jika sebuah saluran memiliki iOS, Android, dan Electron diaktifkan, maka menjadi default tunggal; perangkat tanpa override akan menempel di sini.
  • Default Platform – Jika Anda membagi saluran berdasarkan platform (misalnya, hanya iOS diaktifkan, hanya Android diaktifkan, dan 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. ios-production Pahami bahwa default awan dan default di dalamnya berada di lapisan keputusan yang sama. Jika Anda menetapkan default awan, Anda tidak perlu mengulangi nilai di konfigurasi __CAPGO_KEEP_0__ Anda—biarkan kosong untuk build produksi. Simpan untuk biner yang Anda sengaja kirim ke tester atau QA ketika Anda ingin mereka memulai di saluran non-produksi meskipun default awan berbeda. android-production Saluran dapat diubah kapan saja di dashboard. Ketika Anda mengganti default, perangkat baru mengikuti routing baru segera dan perangkat yang ada mengikuti aturan keutamaan normal ketika mereka memeriksa kembali. electron-production Pengaturan Saluran

Pengaturan Saluran defaultChannel Pengaturan Saluran capacitor.config.* both occupy the same decision layer. If you set a cloud default, you don’t need to duplicate the value in your Capacitor config—leave defaultChannel Pengaturan Saluran defaultChannel Pengaturan Saluran

Pengaturan Saluran

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

  1. Pergi ke bagian ā€œSaluranā€ dari Capgo dashboard
  2. Klik tombol ā€œSaluran Baruā€
  3. Masukkan nama untuk saluran dan klik ā€œBuatā€

Nama saluran dapat apa saja yang Anda inginkan. Strategi umum adalah mencocokkan saluran dengan tahap pengembangan Anda, seperti:

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

Setelah Anda membuat saluran, Anda perlu mengonfigurasi aplikasi Anda untuk mendengarkan saluran yang tepat. Dalam contoh ini, kita akan menggunakan saluran. Development Saluran.

Buka file capacitor.config.ts (atau capacitor.config.json) di sini. Di bawah bagian plugins opsional untuk mengatur defaultChannel untuk build pengembangan (internal / QA). Untuk build produksi, lebih baik mengabaikannya agar perangkat menggunakan Default Cloud kecuali secara eksplisit diubah. Salin ke clipboard

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.
},
},
};

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 telah dikonfigurasi sebelumnya. npx cap sync __CAPGO_KEEP_0__

Saluran memiliki beberapa opsi yang mengontrol siapa yang dapat menerima pembaruan dan bagaimana pembaruan disampaikan. Opsi-opsi penting ada di bawah. Anda dapat mengonfigurasi opsi-opsi ini dari aplikasi web, CLI, atau API Publik.

  • Saluran default: Pilihlah saluran atau saluran khusus platform yang perangkat baru akan terhubung. Lihat ā€œPengaturan Saluran Defaultā€ untuk skenario routing.
  • Filter platform: Aktifkan atau nonaktifkan pengiriman ke iOS, Androidatau Electron perangkat per saluran.
  • Nonaktifkan downgrade otomatis di bawah native: Mencegah pengiriman update ketika versi aplikasi native perangkat lebih baru dari bundle saluran (misalnya, perangkat pada 1.2.3 sedangkan saluran memiliki 1.2.2).
  • Biarkan build pengembangan: Izinkan update ke build pengembangan (bermanfaat untuk tes).
  • Biarkan perangkat emulator: Izinkan update ke emulator/simulator (bermanfaat untuk tes).
  • Biarkan perangkat menetapkan sendiri: Izinkan aplikasi beralih ke saluran ini secara waktu eksekusi menggunakan setChannelJika dinonaktifkan, setChannel akan gagal untuk saluran ini.

Pengiriman progresif

Pengiriman Progresif

Akan tetapi, saluran ini dapat menjaga bundle stabil sambil secara bertahap menampilkan target peluncuran yang terpisah kepada kelompok perangkat yang menempel. Anda dapat menghentikan, melanjutkan, mempromosikan, mengembalikan, dan mengkonfigurasi respons gagal otomatis tanpa harus mengganti saluran untuk semua orang. Lihat Rollout Progresif untuk model pengiriman, alur kerja dashboard, API bidang, dan CLI perintah.

Pakai ini untuk membatasi jenis-jenis update apa saja yang akan disampaikan secara otomatis oleh saluran. Pilihan:

  • utama: Menghalangi bundle target yang versi utamanya lebih tinggi dari dasar native perangkat (version_buildContoh: 1.2.3 -> 2.0.0 dihalangi; 1.2.3 -> 1.9.0 diizinkan.
  • kecil: Menghalangi bundle target yang versi utamanya atau kecilnya berbeda dari version_buildContoh: 1.2.3 -> 1.3.0 ditangguhkan; 1.2.3 -> 1.2.4 diperbolehkan.
  • patch: Mode ketat. Menghalangi perubahan apa pun pada nomor mayor, minor, atau patch. Hanya perubahan sufiks yang diizinkan saat 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 ditangguhkan.
  • metadata: Memerlukan versi update minimum metadata pada setiap bundle. Konfigurasi melalui CLI menggunakan --min-update-version atau --auto-min-update-versionJika tidak ada, saluran tersebut akan ditandai sebagai tidak terkonfigurasi dan pembaruan akan ditolak sampai diatur.
  • semua pembaruan sesuai dengan kompatibilitas semver.

Strategi ini membandingkan bundle target saluran dengan dasar native yang dikirim sebagai version_build, bukan bundle yang diunduh saat ini yang dikirim sebagai version_name.

Untuk mengetahui detail lebih lanjut dan contoh, lihat Disable updates strategy di /docs/cli/commands/#disable-updates-strategy.

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

Metode ini memungkinkan aplikasi Anda untuk berganti saluran secara programatis pada waktu runtime. Hal ini sangat berguna untuk: setChannel() Menu QA/debug di mana tester dapat berganti antara saluran

  • Alur pilihan beta program
  • The
  • Implementasi flag fitur
  • Skenario tes 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 build paket JS baru dan mengasosiasikannya dengan saluran. Anda bisa melakukannya dalam satu langkah dengan menggunakan Capgo CLI:

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

Langkah ini akan mengunggah aset web yang dibangun dan mengatur build paket baru sebagai build aktif untuk saluran. Aplikasi-aplikasi yang dikonfigurasi untuk mendengarkan saluran tersebut akan menerima pembaruan selanjutnya ketika mereka memeriksa untuk pembaruan. 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.

Capgo

Ketika Anda mengatur versi bundle, kami merekomendasikan menggunakan versi semantik dengan Capgo’s Semver Tester dan identifikasi pra-rilis untuk konfigurasi saluran. Misalnya, rilis beta mungkin versi sebagai 1.2.3-beta.1.

Pada CI, jika versi lokal sudah diunggah, gunakan npx @capgo/cli@latest bundle upload --auto-bump (opsional) major, minor, patch/fix, metadata, atau ai) sehingga CLI mengupgrade dari bundle terkait saluran hingga nama gratis ditemukan. Dengan ai, AI Workers menduga tingkat dari manifest lokal vs delta sebelumnya (jatuh kembali ke patch dengan tidak ada versi Capgo sebelumnya). Anda tidak dapat menggabungkannya dengan --bundle. Lihat dan CI/CD Integration Referensi CLI.

Metode ini memiliki beberapa keuntungan:

  • Memungkinkan komunikasi yang jelas tentang hubungan antara build. 1.2.3-beta.1 jelas merupakan rilis pra-terbitan dari 1.2.3.
  • Memungkinkan penggunaan nomor versi ulang di kanal-kanal, mengurangi kebingungan.
  • Memungkinkan jalur rollback yang jelas. Jika Anda perlu kembali dari 1.2.3, Anda tahu 1.2.2 adalah rilis stabil sebelumnya.

Contoh berikut menunjukkan cara Anda mungkin mengatur versi bundle dengan pengaturan kanal biasa:

  • Development kanal: 1.2.3-dev.1, 1.2.3-dev.2, dan seterusnya.
  • QA kanal: 1.2.3-qa.1, 1.2.3-qa.2dan lain-lain
  • Staging saluran: 1.2.3-rc.1, 1.2.3-rc.2dan lain-lain
  • Production saluran: 1.2.3, 1.2.4dan lain-lain

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

Jika Anda mengaktifkan langkah hidup yang memperkenalkan bug atau perlu dibalik, Anda dapat dengan mudah mengembalikan ke build sebelumnya. Dari bagian ā€œSaluranā€ di dashboard:

  1. Klik nama saluran yang ingin Anda kembalikan
  2. Temukan build yang ingin Anda kembali ke dan klik ikon mahkota Kembali ke Build
  3. Konfirmasi Aksi

Build yang dipilih akan langsung menjadi build 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 pengiriman pembaruan live update sebagai bagian dari pipeline CI/CD Anda. Dengan mengintegrasikan Capgo ke dalam proses build Anda, Anda dapat mengunggah bundle baru secara otomatis dan menugaskan mereka ke saluran pada saat Anda push ke cabang tertentu atau membuat rilis baru.

Cari tahu lebih lanjut tentang Integrasi CI/CD docs to learn more about automating Capgo live updates.

docs untuk mempelajari lebih lanjut tentang mengautomasi __CAPGO_KEEP_0__ pembaruan live.

Pratinjau PR dengan hak istimewa terendah

Menggunakan kunci __CAPGO_KEEP_0__ untuk App Previews App Preview Kunci API

  1. Kunci API App PreviewLihat Kunci API.
  2. Menggunakan saluran __CAPGO_KEEP_0__ yang unik dan tidak umum seperti pr-123Tidak melewati --default, --self-assign, opsi peluncuran, atau --delete-linked-bundle-on-upload.
  3. Upload dan promosikan bundle PR dalam satu perintah, lalu hapus saluran dan bundle yang dimiliki ketika PR ditutup:
Jendela terminal
APP_ID="com.example.app"
PREVIEW_CHANNEL="pr-123"
BUNDLE_VERSION="1.2.3-pr.123"
npx @capgo/cli@latest bundle upload "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--path ./dist \
--channel "$PREVIEW_CHANNEL" \
--bundle "$BUNDLE_VERSION"
npx @capgo/cli@latest channel delete "$PREVIEW_CHANNEL" "$APP_ID" \
--apikey "$CAPGO_PREVIEW_KEY" \
--delete-bundle \
--success-if-not-found

bundle upload --channel Membuat saluran yang hilang, mengunggah paket, dan mempromosikannya dalam satu aliran. Pembersihan adalah atomik dan diperiksa kepemilikan: kunci dapat menghapus hanya saluran yang dibuatnya dan paket terkait yang tidak dibagikan. Kunci tersebut tidak dapat mengubah, mempromosikan, atau menghapus saluran utama/default yang ada, saluran milik kunci lain, atau paket milik kunci lain.

Jika para reviewer membutuhkan QR code atau URL pratinjau, administrator harus mengaktifkan pratinjau sekali untuk aplikasi:

Jendela terminal
npx @capgo/cli@latest app set "$APP_ID" --preview
npx @capgo/cli@latest get-qr "$APP_ID" --channel "$PREVIEW_CHANNEL" --apikey "$CAPGO_PREVIEW_KEY" --url

Kunci App Preview tidak dapat mengaktifkan pratinjau sendiri karena tidak memiliki izin pengaturan aplikasi. Dalam GitHub Actions, jalankan pekerjaan pratinjau yang mengandung rahasia pada pull_request, bukan pull_request_target, dan batasi pada PR yang sama-repositori dengan github.event.pull_request.head.repo.full_name == github.repository.

Sekarang Anda sudah memahami saluran, Anda siap untuk memulai menjalankan penerapan live update ke perangkat nyata. Proses dasar adalah:

  1. Pasang Capgo SDK di aplikasi Anda
  2. Konfigurasi aplikasi untuk mendengarkan saluran yang diinginkan
  3. Unggah bangun dan asosiasikan dengan saluran tersebut
  4. Rilis aplikasi dan tunggu update!

Untuk panduan yang lebih rinci, lihat Deploying Live Updates guide. Selamat mengupdate!

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

  • Bendera fitur untuk tingkat pengguna yang berbeda
  • Pengujian A/B
  • Pengeluaran fitur secara bertahap
  • Program pengujian beta

Belajar cara menerapkan kasus penggunaan maju ini dalam panduan kami: Bagaimana cara Mengsegmentasi Pengguna berdasarkan Plan dan Channel untuk Flag Fitur dan Pengujian A/B.

Jika Anda menggunakan Channel context":"Capgo fitur nama saluran rilis. 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 2)." untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Channel context":"Capgo fitur nama saluran rilis. 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 2)." untuk detail implementasi di Channel, dan Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, Solusi Target Versi untuk alur kerja produk di Solusi Target Versi, dan Capgo Praktik Terbaik Lingkungan: Pengujian Staging dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Pengujian Staging dengan Satu ID Aplikasi Mobile.