Lompat ke konten

Saluran

Saluran Update Langsung hidup menunjuk ke sebuah build bundle JS aplikasi Anda yang akan dibagikan dengan perangkat apa pun yang telah dikonfigurasi untuk mendengarkan saluran tersebut untuk update. Ketika Anda mengaktifkan saluran ini, perangkat akan secara otomatis mendapatkan update terbaru dari saluran tersebut. install the Capgo Pembaruan Hidup SDK dalam aplikasi Anda, setiap biner native yang dikonfigurasi untuk saluran tersebut akan memeriksa pembaruan yang tersedia setiap kali aplikasi diluncurkan. Anda dapat mengubah saluran yang dituju pada saat apapun dan juga dapat kembali ke versi sebelumnya jika diperlukan.

Saat perangkat memeriksa pembaruan, Capgo memutuskan saluran yang digunakan dalam urutan ini (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. Mengatur ulang awan (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 akan 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 Pengaturan Ulang Perangkat.
  1. Konfigurasi Capacitor defaultChannel (versi uji default) – Jika ada dalam 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 (jalan 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 mengaktifkan atau membatalkan 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 adalah diperbolehkan; dalam hal itu perangkat harus menemukan langkah-langkah 1-4 untuk menerima update. API config

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. Menyisihkannya menjaga logika produksi tetap terkonsentrasi di dashboard.
  • Gunakan setChannel() sangat jarang dalam produksi—utamanya untuk QA atau diagnostik yang sasaran.

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

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 petaan 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 saluran memiliki iOS, Android, dan Electron diaktifkan, maka menjadi default tunggal; perangkat tanpa penggantian akan menempel di sini.
  • Pengaturan default spesifik platform – Jika Anda membagi saluran 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 default awan, Anda tidak perlu mengulangi nilai di konfigurasi Capacitor Anda—biarkan defaultChannel kosong untuk pembangunan produksi. Simpan defaultChannel untuk biner yang Anda sengaja kirimkan kepada tes atau QA ketika Anda ingin mereka memulai di saluran non-produksi meskipun default awan yang berbeda

Anda dapat mengubah default 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

Pada saat onboard Anda membuat saluran pertama (banyak tim menamainya ā€œProduksiā€), tetapi tidak ada yang terkunci—Anda dapat menamai atau menghapus saluran mana saja 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 untuk menyesuaikan nama saluran dengan tahap 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 oleh pengguna akhir dari toko aplikasi

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

Buka file Anda capacitor.config.ts (atau capacitor.config.json) file. Di bawah bagian plugins opsionalnya atur defaultChannel untuk tes build Untuk build produksi, lebih baik dihilangkan sehingga perangkat menggunakan Default Cloud kecuali diatur secara eksplisit.

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, buatlah 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 paling penting ada di bawah. Anda dapat mengonfigurasi hal ini dari aplikasi web, CLI, atau Public API.

  • Saluran default: Opsional, tandai saluran atau saluran khusus 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: Menghambat pengiriman update ketika versi aplikasi native perangkat lebih baru dari bundle saluran (misalnya, perangkat pada 1.2.3 sementara saluran memiliki 1.2.2).
  • Izinkan build pengembangan: Izinkan update ke build pengembangan (bermanfaat untuk testing).
  • Izinkan perangkat emulator: Izinkan update ke perangkat emulator/simulator (bermanfaat untuk testing).
  • Memungkinkan perangkat penugasan sendiri: Memungkinkan aplikasi beralih ke saluran ini pada waktu runtime menggunakan setChannelJika dinonaktifkan, setChannel akan gagal untuk saluran ini.

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

  • besar: Menghalangi suatu paket sasaran yang versi mayor lebih tinggi dari dasar native perangkat (version_build). Contoh: 1.2.3 -> 2.0.0 terblokir; 1.2.3 -> 1.9.0 diperbolehkan.
  • kecil: Menghalangi suatu paket sasaran yang versi mayor atau minor berbeda dari version_build. Contoh: 1.2.3 -> 1.3.0 ditangguhkan; 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 ditangguhkan.
  • metadata: Tuntut versi update minimum metadata pada setiap bundle. Konfigurasi melalui CLI menggunakan --min-update-version atau --auto-min-update-version. Jika hilang, saluran tersebut ditandai tidak terkonfigurasi dan update akan ditolak sampai diset.
  • tidak ada: Izinkan semua update 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.

Belajar lebih lanjut tentang detail dan contoh di strategi Disable updates 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

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

  • Menu QA/debug di mana tester dapat beralih antara saluran
  • Alur pilihan beta untuk mengaktifkan saluran
  • 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 bundle JS baru dan mengasignkannya ke saluran. Anda bisa melakukannya dalam satu langkah dengan menggunakan 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 mengasignkan build ke saluran dari bagian ā€œPaketā€ di __CAPGO_KEEP_0__ dashboard. Klik ikon menu di samping build dan pilih ā€œAsign 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 mengatur versi bundle, kami merekomendasikan menggunakan versi semantik dengan __CAPGO_KEEP_0__’s Semver Tester dan identifikasi pra-rilis untuk build khusus saluran. Misalnya, rilis beta mungkin versi sebagai semantic versioning with Capgo’s Semver Tester Memudahkan komunikasi hubungan antar build. 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 mengatur versi bundle Anda dengan setup saluran biasa: 1.2.2 saluran:

channel:

  • Development channel: 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 sesuai dengan proses pengembangan tim Anda. Mengembalikan Perbaruan Langsung

Judul bagian ā€œMengembalikan Perbaruan Langsungā€

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

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

  1. Klik nama saluran yang ingin Anda kembali ke
  2. Cari versi yang ingin Anda kembalikan dan klik ikon mahkota Kembali ke versi sebelumnya
  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 canggih, Anda dapat mengautomasi pembaruan live Anda 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.

Cek tautan ini untuk mempelajari lebih lanjut tentang mengautomasi pembaruan __CAPGO_KEEP_0__ live. Integrasi CI/CD Dokumentasi untuk mempelajari lebih lanjut tentang mengautomasi pembaruan Capgo live.

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 itu
  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
  • Pengeluaran fitur secara bertahap
  • Program uji coba beta

Pelajari 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 pengeluaran yang berstadium, hubungkannya dengan Section titled ā€œTeruskan dari Saluranā€ Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, 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: Pengembangan Staging dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Pengembangan Staging dengan Satu ID Aplikasi Mobile.