Lompat ke konten

Saluran

Akan mengarahkan saluran Pembaruan Hidup ke bundle JS tertentu yang dibangun 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 build yang dikaitkan dengan saluran pada saat apapun dan juga dapat kembali ke build sebelumnya jika perlu.

Bagaimana perangkat memilih saluran (prioritas)

Bagaimana perangkat memilih saluran (prioritas)

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

  1. Pengaturan perangkat paksa (Dashboard) – Manual pin device ID ke saluran tertentu. Gunakan untuk debugging darurat atau pengujian terkendali dengan pengguna asli 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.
  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 Override Perangkat.
  1. Pengaturan Capacitor defaultChannel (versi uji default) – Jika ada di capacitor.config.* dan tidak ada saluran paksa/override/local, aplikasi dimulai pada saluran ini (misalnya, ). beta, qa, pr-123Dedikasi untuk versi uji / versi internal sehingga tester langsung berada di saluran pre-release secara otomatis. Versi produksi biasanya tidak mengatur ini.
  2. Saluran Utama Cloud (jalur utama ~99% pengguna) – Jika Anda menandai sebuah saluran default di dashboard, semua pengguna normal (tidak paksa, tidak Dashboard/API override, tidak plugin saluran lokal, tidak konfigurasi defaultChannel) akan terhubung di sini. Ubahnya menjadi rilis atau mundur 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 di default yang sesuai dengan platformnya. Mengbiarkan default awan tidak ditetapkan diizinkan; dalam kasus itu, perangkat harus cocok pada langkah 1–4 untuk menerima pembaruan.

Praktik terbaik:

  • Tangani 1–4 sebagai lapisan kecuali / tes; ketika Anda menetapkan default awan, pengguna nyata harus mengalir ke dalamnya. Jika Anda memilih tidak menetapkan satu, maka Anda harus sengaja tentang bagaimana pengguna terhubung (biasanya melalui defaultChannel konfigurasi atau pengaturan per-device).
  • Hanya konfigurasi defaultChannel dalam binary yang Anda kirim secara eksplisit kepada tester. Mengbiarkannya tidak ditetapkan menjaga logika produksi sentral di dashboard.
  • Pakai setChannel() sparingly di produksi—utamanya untuk QA atau diagnostik sasaran.

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

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

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

  • Default tunggal (yang paling umum) – Jika sebuah saluran memiliki iOS, Android, dan Electron diaktifkan, maka menjadi awalan tunggal; perangkat mana pun tanpa penggantian akan menempel di sini.
  • Pengaturan awalan 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 awalan untuk platformnya. Perangkat iOS pergi ke awalan iOS, perangkat Android pergi ke awalan Android, dan aplikasi Electron pergi ke awalan Electron.

Ingatlah bahwa awalan cloud dan defaultChannel Ini, baiknya sama-sama berada di lapisan keputusan yang sama. Jika Anda menetapkan default awan, Anda tidak perlu mengulang nilai di konfigurasi __CAPGO_KEEP_0__ Anda—biarkan kosong untuk pembangunan produksi. Simpan 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 Anda dapat mengubah default kapan saja di dashboard. Ketika Anda mengganti default, perangkat baru mengikuti aturan routing baru segera dan perangkat yang ada mengikuti aturan keutamaan normal saat mereka memeriksa kembali. defaultChannel Pengaturan Saluran

Bagian berjudul ā€œPengaturan Saluranā€

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

Kunjungi bagian ā€œSaluranā€ di dashboard __CAPGO_KEEP_0__

Klik tombol ā€œBuat Saluran Baruā€

  1. Go to the ā€œChannelsā€ section of the Capgo dashboard
  2. Nama saluran dapat apa saja yang Anda inginkan. Strategi umum adalah mencocokkan saluran dengan tahap pengembangan Anda, seperti:
  3. Produksi

Uji Coba (Alpha/Beta)

  • Development - untuk tes pembaruan live pada 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 dengan produksi
  • Production - untuk versi aplikasi yang diterima oleh pengguna akhir dari toko aplikasi

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

Buka file capacitor.config.ts (atau capacitor.config.json) di editor Anda. Di bawah bagian plugins opsional defaultChannel untuk pengujian untuk

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 konfigurasi file 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.

Saluran memiliki beberapa opsi yang mengontrol siapa yang bisa menerima update dan bagaimana update disampaikan. Yang paling penting adalah di bawah. Kamu bisa mengonfigurasi ini dari aplikasi web, CLI, atau Public API.

  • Saluran default: Opsional untuk menandai saluran atau saluran khusus platform yang perangkat baru terhubung. Lihat ā€œPengaturan Saluran Defaultā€ untuk skenario routing.
  • Pengatur filter platform: Aktifkan atau nonaktifkan pengiriman ke iOS, Android, atau Electron perangkat per saluran.
  • Matikan auto downgrade di native: Menghalangi 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 pembangunan: Izinkan update ke pembangunan (bermanfaat untuk tes).
  • Perizinan perangkat simulator: Izinkan pembaruan ke perangkat simulator/emulator (bermanfaat untuk pengujian).
  • Perizinan penugasan perangkat sendiri: Izinkan aplikasi beralih ke saluran ini pada waktu runtime menggunakan setChannelJika dinonaktifkan, setChannel akan gagal untuk saluran ini.

Saluran dapat menjaga bundle stabil sambil secara bertahap menampilkan target rollout terpisah ke kohort perangkat yang menempel. Anda dapat menghentikan, melanjutkan, mempromosikan, mengembalikan, dan mengonfigurasi respons gagal otomatis tanpa beralih ke saluran untuk semua orang. Lihat Rollout Langsung untuk model pengiriman, alur kerja dashboard, API bidang, dan CLI perintah.

Pakai ini untuk membatasi jenis-jenis pembaruan yang saluran akan mengirim secara otomatis. Pilihan:

  • Menghalangi bundle target dengan versi utama yang lebih tinggi dari baseline native perangkat (version_build). Contoh: 1.2.3 -> 2.0.0 diblokir; 1.2.3 -> 1.9.0 diperbolehkan.
  • versi minor: Menghalangi bundle target dengan versi utama atau minor yang berbeda dari version_build. Contoh: 1.2.3 -> 1.3.0 diblokir; 1.2.3 -> 1.2.4 diperbolehkan.
  • versi patch: Mode yang paling ketat. Menghalangi perubahan apa pun pada nomor utama, minor, atau patch. Hanya perubahan sufiks 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 diblokir.
  • metadata: Memerlukan 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 menurut kompatibilitas semver Strategi ini membandingkan bundle target saluran terhadap basis native yang dikirim sebagai.

, bukan bundle yang diunduh saat ini yang dikirim sebagai version_buildPelajari lebih lanjut detail dan contoh di Disable updates strategy di /docs/__CAPGO_KEEP_0__/commands/#disable-updates-strategy. version_name.

Contoh (cli):

Example (CLI):

Salin ke clipboard
# 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

The 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 penerimaan program beta
  • 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 hidup, Anda perlu mengunggah build paket JS baru dan mengasosiasikannya dengan saluran. Anda bisa melakukannya dalam satu langkah dengan menggunakan Capgo CLI:

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

This akan mengunggah aset web yang dibangun dan mengatur bundle baru sebagai build aktif untuk saluran. Aplikasi-apliki yang terkonfigurasi untuk mendengarkan saluran tersebut akan menerima update pada saat mereka memeriksa update berikutnya. Development Anda juga dapat menugaskan build ke saluran dari bagian ā€œBundlesā€ di __CAPGO_KEEP_0__ dashboard. Klik ikon menu di samping build dan pilih ā€œTugaskan 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.

versi semantik dengan __CAPGO_KEEP_0__’s Semver Tester semantic versioning with Capgo’s Semver Tester Metode ini memiliki beberapa keuntungan: 1.2.3-beta.1.

Memudahkan komunikasi hubungan antara build.

  • jelas merupakan pre-release dari 1.2.3-beta.1 is obviously a pre-release of 1.2.3.
  • Mengizinkan penggunaan nomor versi yang sama di berbagai saluran, mengurangi kebingungan.
  • Mengaktifkan jalur pengembalian yang jelas. Jika Anda perlu kembali dari 1.2.3Anda tahu 1.2.2 adalah rilis stabil sebelumnya.

Berikut adalah contoh cara Anda mungkin menyesuaikan versi bundel dengan pengaturan saluran yang biasa:

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

Menggunakan menggunakan semver dengan identifikasi pre-release merupakan 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.

Jika Anda mengirimkan update hidup yang memperkenalkan bug atau perlu diubah kembali, Anda dapat dengan mudah mengembalikan ke build sebelumnya. Dari bagian ā€œSaluranā€ dashboard:

  1. Klik nama saluran yang ingin Anda kembalikan
  2. Cari build yang ingin Anda kembalikan dan klik ikon mahkota Mengembalikan 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 update berikutnya.

Untuk alur kerja yang lebih canggih, Anda dapat mengautomasi pengiriman update 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 ketika Anda push ke cabang-cabang tertentu atau membuat rilis baru.

Cek tautan ke Pengintegrasian CI/CD docs untuk mengetahui lebih lanjut tentang mengautomasi Capgo update hidup.

Pakai kunci Aplikasi Pratinjau API ketika CI membutuhkan satu saluran sementara per permintaan pull, tetapi tidak boleh mengelola saluran utama/default yang ada. Kunci tetap terikat pada organisasi pemilik dan aplikasi yang dipilih; hanya saja tidak memiliki peran organisasi. Setiap saluran pratinjau non-umum yang dibuat menerima izin kehidupan siklus yang otomatis, berdasarkan saluran.

  1. Buatlah administrator organisasi membuat kunci API yang aman dan terbatas hanya pada aplikasi pratinjau dan pilih Pratinjau Aplikasi. Lihat API Kunci.
  2. Pilih saluran unik, tidak publik seperti pr-123. Jangan lewatkan --default, --self-assign, opsi peluncuran, atau --delete-linked-bundle-on-upload.
  3. Upload dan promosikan bundle PR dalam satu perintah, kemudian hapus saluran dan bundle yang dimiliki ketika PR ditutup:
Tampilan 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 bundle, dan mempromosikannya dalam satu aliran. Pembersihan atomik dan diperiksa kepemilikan: kunci dapat menghapus hanya saluran yang dibuatnya dan bundle yang terkait, tidak berbagi. Tidak dapat mengubah, mempromosikan, atau menghapus saluran utama/default yang ada, saluran lain dari kunci pratinjau, atau bundle milik kunci lain.

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

Tampilan 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 itu sendiri karena tidak memiliki izin pengaturan aplikasi. Di GitHub Aksi, jalankan pekerjaan pratinjau yang membawa rahasia di pull_request, bukan pull_request_target, dan batasi mereka hanya ke PR yang sama-repositori dengan github.event.pull_request.head.repo.full_name == github.repository.

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

  1. Pasang Capgo SDK di aplikasi Anda
  2. Konfigurasi aplikasi untuk mendengar saluran yang diinginkan Anda
  3. Unggah bangun dan tentukan saluran itu
  4. Luncurkan aplikasi dan tunggu pembaruan!

Untuk walkthrough yang lebih rinci, lihat Mengaktifkan Perbaruan Hidup guide. 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
  • Peluncuran fitur secara bertahap
  • Program uji coba beta

Pelajari cara menerapkan kasus penggunaan lanjutan ini dalam panduan kami: Cara Mengsegmentasi Pengguna berdasarkan Paket dan Saluran untuk Flag Fitur dan Pengujian A/B.

Jika Anda menggunakan Channels untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Channels untuk detail implementasi di Channels, Channels untuk detail implementasi di Channels, Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, Solusi Target Versi untuk alur kerja produk di Solusi Target Versi, Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile