Pengaturan Versi
Tepatkan prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Petunjuk ini menjelaskan cara mengirimkan bundle terbaru yang kompatibel ke pengguna berdasarkan versi aplikasi native mereka, seperti pendekatan Ionic AppFlow. Ini memastikan pengelolaan update yang lebih sederhana dan peluncuran yang lebih cepat sambil mencegah masalah kompatibilitas.
Judul bagian ‘Ringkasan’
__CAPGO_KEEP_0__’s sistem penargetan versi memungkinkan Anda:Capgo’s version targeting system allows you to:
- Mengirimkan update yang kompatibel secara otomatis ke pengguna berdasarkan versi aplikasi asli mereka
- Mencegah perubahan yang mengganggu agar tidak mencapai versi aplikasi yang tidak kompatibel
- Manajemen versi aplikasi yang berbeda secara bersamaan tanpa logika kompleks
- Melakukan perubahan besar secara halus ke segmen pengguna tertentu
Mengapa Targeting Versi Penting (Terutama untuk Pengguna AppFlow)
Judul bagian “Mengapa Targeting Versi Penting (Terutama untuk Pengguna AppFlow)”Jika Anda sudah familiar dengan Ionic AppFlow, Anda tahu betapa pentingnya memastikan pengguna hanya menerima update yang kompatibel. AppFlow secara otomatis memasangkan paket update live ke versi aplikasi asli, sehingga JavaScript yang tidak kompatibel tidak akan disampaikan ke versi aplikasi asli code.
Capgo menyediakan jaminan keamanan yang sama, dengan fitur tambahan:
- Kontrol yang lebih halus atas matching versi
- Strategi yang lebih dari satu (saluran, semver, konstrain native)
- Keterlihatan yang lebih baik atas distribusi versi
- API dan CLI mengontrol bersama dengan pengelolaan dashboard
Metode ini sangat berguna ketika:
- Pengguna Anda berada pada versi mayor yang berbeda dari aplikasi Anda (misalnya, v1.x, v2.x, v3.x)
- Pengguna memerlukan kompatibilitas mundur sementara mengeluarkan perubahan yang mengganggu
- Pengguna ingin mencegah bundle yang lebih baru mengganggu native code yang lebih tua
- Pengguna sedang melakukan migrasi secara bertahap dari satu versi ke versi lain
- Pengguna sedang melakukan migrasi dari AppFlow dan ingin menjaga keamanan pembaruan yang sama
How It Works
Bagaimana Cara KerjanyaCapgo uses a multi-layered approach to match users with compatible updates:
- __CAPGO_KEEP_0__ menggunakan pendekatan multi-layered untuk mencocokkan pengguna dengan pembaruan yang kompatibel:Konstruksi Versi Nativ
- : Mencegah bundle dari pengiriman ke versi native yang tidak kompatibelPengaturan Rute Berdasarkan Saluran
- : Mengarahkan versi aplikasi yang berbeda ke saluran pembaruan yang berbedaPengendalian Versi Semantik
- : Mengblokir otomatis pembaruan di batas-batas mayor/minor/patchPenyesuaian Tingkat Perangkat
Alur Pemilihan Versi
Bab berjudul “Alur Pemilihan Versi”graph TD A[User Opens App] --> B{Check Device Override} B -->|Override Set| C[Use Override Channel] B -->|No Override| D{Check local plugin channel} D -->|setChannel value| E[Use local setChannel channel] D -->|No local channel| F{Check defaultChannel in App} F -->|Has defaultChannel| G[Use App's defaultChannel] F -->|No defaultChannel| H[Use Cloud Default Channel] C --> I{Check Version Constraints} E --> I G --> I H --> I I -->|Compatible| J[Deliver Update] I -->|Incompatible| K[Skip Update]Strategi 1: Rute Versi Berdasarkan Saluran
Bab berjudul “Strategi 1: Rute Versi Berdasarkan Saluran”Ini adalah metode yang disarankan untuk mengelola perubahan yang memecah dan pembaruan versi utama. Ini mirip dengan model pengiriman AppFlow.
Skenario Contoh
Bab berjudul “Skenario Contoh”- Aplikasi v1.x (100.000 pengguna) →
productionsaluran - Aplikasi v2.x (50.000 pengguna dengan perubahan besar) →
v2saluran - Aplikasi v3.x (10.000 pengguna beta) →
v3saluran
Pengimplementasian
Bab berjudul “Pengimplementasian”Langkah 1: Konfigurasi Saluran untuk Setiap Versi Utama
Bab berjudul “Langkah 1: Konfigurasi Saluran untuk Setiap Versi Utama”// capacitor.config.ts for version 1.x buildsimport { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { autoUpdate: 'atBackground', defaultChannel: 'production', // or omit for default } }};
export default config;// capacitor.config.ts for version 2.x buildsconst config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { autoUpdate: 'atBackground', defaultChannel: 'v2', // Routes v2 users automatically } }};// capacitor.config.ts for version 3.x buildsconst config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { autoUpdate: 'atBackground', defaultChannel: 'v3', // Routes v3 users automatically } }};Langkah 2: Buat Saluran
Judul Bagian “Langkah 2: Buat Saluran”# Create channels for each major versionnpx @capgo/cli channel create productionnpx @capgo/cli channel create v2npx @capgo/cli channel create v3
# Enable self-assignment so apps can switch channelsnpx @capgo/cli channel set production --self-assignnpx @capgo/cli channel set v2 --self-assignnpx @capgo/cli channel set v3 --self-assignLangkah 3: Unggah Paket Versi-Spesifik
Judul Bagian “Langkah 3: Unggah Paket Versi-Spesifik”# For v1.x users (from v1-maintenance branch)git checkout v1-maintenancenpm run buildnpx @capgo/cli bundle upload --channel production
# For v2.x users (from v2-maintenance or main branch)git checkout mainnpm run buildnpx @capgo/cli bundle upload --channel v2
# For v3.x users (from beta/v3 branch)git checkout betanpm run buildnpx @capgo/cli bundle upload --channel v3- Zero code changes Tidak perlu mengubah kode apa pun
- - Routing saluran terjadi secara otomatis Penyisihan yang jelas
- - Setiap versi memiliki jalur pembaruan sendiri Pengaturan yang fleksibel
- - Kirim pembaruan ke kelompok versi tertentu Rollout yang aman (aman) dan terkendali (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontrol) (terkontol)
Strategi 2: Pengendalian Versi Semantik
Judul Bagian: Strategi 2: Pengendalian Versi SemantikPakai Capgo’s built-in pengendalian versi semantik untuk mencegah pembaruan di batas-batas versi.
Mencegah Pembaruan Otomatis di Versi Utama
Judul Bagian: Mencegah Pembaruan Otomatis di Versi Utama# Create a channel that blocks major version updatesnpx @capgo/cli channel create stable --disable-auto-update majorKonfigurasi ini berarti:
- Pengguna aplikasi versi 1.2.3 akan menerima pembaruan hingga 1.9.9
- Pengguna akan TIDAK menerima versi 2.0.0 otomatis
- Mencegah perubahan yang mengganggu mencapai native code
- Perbandingan menggunakan basis native yang dikirimkan sebagai
version_build
Pilihan Kontrol yang Rinci
Judul Bagian “Pilihan Kontrol yang Rinci”# Block target bundles outside the native major.minor line (1.2.x won't get 1.3.0)npx @capgo/cli channel set stable --disable-auto-update minor
# Block target bundles outside the exact native MAJOR.MINOR.PATCH core (1.2.3 won't get 1.2.4)npx @capgo/cli channel set stable --disable-auto-update patch
# Allow all updatesnpx @capgo/cli channel set stable --disable-auto-update noneStrategi 3: Konstrain Versi Nama Domain
Judul bagian “Strategi 3: Konstrain Versi Nama Domain”Spesifikasikan versi aplikasi native minimum (“)min_update_versionpada setiap paket sehingga Capgo hanya mengirimkannya ke perangkat yang memiliki biner native yang cukup baru.
Ini menggunakan strategi metadata saluran (“) plus plus--disable-auto-update metadataplus --min-update-version atau --auto-min-update-version __CAPGO_KEEP_0__ --native-version CLI flag.
Judul bagian: Aktifkan pengaturan target metadata pada saluran
Jendela terminal# one-time: require min_update_version metadata on uploads to this channelnpx @capgo/cli@latest channel set production --disable-auto-update metadataJudul bagian: Setel versi native minimum pada saat mengunggah
Saat mengunggah sebuah bundle, masukkan versi native terendah yang mungkin menerima itu:Jendela terminal
# This bundle requires native version 2.0.0 or highernpx @capgo/cli@latest bundle upload \ --channel production \ --min-update-version "2.0.0"Atau biarkan Capgo menetapkan lantai dari kompatibilitas paket native:
npx @capgo/cli@latest bundle upload \ --channel production \ --auto-min-update-versionPenggunaan Kasus
Judul Bagian “Penggunaan Kasus”-
Plugin Asli Baru Diperlukan
Tampilan Jendela Terminal # Bundle needs Camera plugin added in v2.0.0npx @capgo/cli@latest bundle upload \--channel production \--min-update-version "2.0.0" -
Pembaharuan Asli API yang Mengubah
Tampilan Jendela Terminal # Bundle uses new Capacitor 6 APIsnpx @capgo/cli@latest bundle upload \--channel production \--min-update-version "3.0.0" -
Migrasi Gradual
Tampilan Jendela Terminal # one-time: enable metadata gating on betanpx @capgo/cli@latest channel set beta --disable-auto-update metadata# Test bundle only on latest native versionnpx @capgo/cli@latest bundle upload \--channel beta \--min-update-version "2.5.0"
Strategi 4: Pencegahan Penurunan Otomatis
Judul Bagian “Strategi 4: Pencegahan Penurunan Otomatis”Mencegah pengguna menerima bundle yang lebih tua dari versi native mereka saat ini.
Mengaktifkan di Pengaturan Saluran
Bab yang berjudul “Mengaktifkan di Pengaturan Saluran”Pada dashboard Capgo:
- Pergi ke Saluran context
- Pilih saluran Anda Mengaktifkan
- “Nonaktifkan penurunan otomatis di native”
Or via CLI:
npx @capgo/cli@latest channel set production --no-downgradeContoh
Bab berjudul “Contoh”- Perangkat pengguna: Versi asli 1.2.5
- Salinan kanal: Versi 1.2.3
- Hasil: Perbaruan diblokir (akan menjadi penurunan versi)
Hal ini berguna ketika:
- Pengguna secara manual menginstal versi yang lebih baru dari toko aplikasi
- Anda perlu memastikan pengguna selalu memiliki patch keamanan terbaru
- Anda ingin mencegah bug regresi
Strategi 5: Targeting Tingkat Perangkat
Judul Bagian: ‘Strategi 5: Targeting pada Tingkat Perangkat’Override pengaturan saluran untuk perangkat tertentu atau kelompok pengguna.
Force Versi Spesifik untuk Pengujian
Judul Bagian: ‘Force Versi Spesifik untuk Pengujian’import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Force beta testers to use v3 channelasync function assignBetaTesters() { const deviceId = await CapacitorUpdater.getDeviceId()
// Check if user is beta tester if (isBetaTester(userId)) { await CapacitorUpdater.setChannel({ channel: 'v3' }) }}Dashboard Pengaturan Perangkat
Judul Bagian: ‘Dashboard Pengaturan Perangkat’Pada Capgo dashboard:
- Pergi ke Perangkat → Cari perangkat
- Klik Set Saluran atau Bagaimana cara memilih antara saluran yang berbeda?
- Set Versi
- Override dengan versi saluran atau paket tertentu
Gunakan pengaturan perangkat untuk menguji update pada perangkat Anda sendiri sebelum mengimplementasikannya untuk semua pengguna.
Alur Kerja Lengkap AppFlow-StyleBagian berjudul “Alur Kerja Lengkap AppFlow-Style”
Berikut adalah contoh lengkap yang menggabungkan semua strategi tersebut:
Judul Bagian “1. Pengaturan Awal (Aplikasi v1.0.0)”# Create production channel, then enable metadata min-version gatingnpx @capgo/cli@latest channel add productionnpx @capgo/cli@latest channel set production \ --disable-auto-update metadata \ --no-downgradeconst config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'atBackground', defaultChannel: 'production', } }};2. Perubahan Penerbitan (Aplikasi v2.0.0)
Judul Bagian “2. Perubahan Penerbitan (Aplikasi v2.0.0)”# Create v2 channel for new versionnpx @capgo/cli@latest channel add v2npx @capgo/cli@latest channel set v2 \ --disable-auto-update metadata \ --no-downgrade \ --self-assign
# Create git branch for v1 maintenancegit checkout -b v1-maintenancegit push origin v1-maintenance// capacitor.config.ts for v2.0.0const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'atBackground', defaultChannel: 'v2', // New users get v2 channel } }};3. Kirim Perbarui ke Versi Berdua
Judul Bagian “3. Kirim Perbarui ke Versi Berdua”# Update v1.x users (bug fix)git checkout v1-maintenance# Make changesnpx @capgo/cli@latest bundle upload \ --channel production \ --min-update-version "1.0.0"
# Update v2.x users (new feature)git checkout main# Make changesnpx @capgo/cli@latest bundle upload \ --channel v2 \ --min-update-version "2.0.0"4. Pantau Distribusi Versi
Judul bagian “4. Pantau Distribusi Versi”Pakai dashboard Capgo untuk melacak:
- Banyaknya pengguna pada v1 vs v2
- Rasio penggunaan paket per versi
- Kerusakan atau kegagalan per versi
5. Deprecate Versi Lama
Judul bagian “5. Deprecate Versi Lama”Setelah penggunaan v1 turun di bawah ambang batas:
# Stop uploading to production channel# Optional: Delete v1 maintenance branchgit branch -d v1-maintenance
# Move all remaining users to default# (They'll need to update via app store)Prioritas Saluran
Judul Bagian “Prioritas Saluran”Ketika ada beberapa konfigurasi saluran, Capgo menggunakan urutan prioritas ini:
- Override Perangkat (Dashboard atau API) - Prioritas tertinggi dan terlihat di UI Override Perangkat
- Saluran Plugin Lokal via
setChannel()- Tersimpan di perangkat hanya dan tidak ditampilkan di UI Override Perangkat - defaultChannel dalam capacitor.config.ts
- Saluran Default (Pengaturan Cloud) - Prioritas Terendah
Praktik Terbaik
Bab berjudul “Praktik Terbaik”1. Selalu Tetapkan defaultChannel untuk Versi Utama
Judul Bagian “1. Selalu Tetapkan defaultChannel untuk Versi Utama”// ✅ Good: Each major version has explicit channel// v1.x → production// v2.x → v2// v3.x → v3
// ❌ Bad: Relying on dynamic channel switching// All versions → production, switch manually2. Gunakan Versi Semantik
Judul Bagian “2. Gunakan Versi Semantik”# ✅ Good1.0.0 → 1.0.1 → 1.1.0 → 2.0.0
# ❌ Bad1.0 → 1.1 → 2 → 2.53. Jaga Cabang Terpisah
Judul Bagian “3. Jaga Cabang Terpisah”# ✅ Good: Separate branches per major versionmain (v3.x)v2-maintenance (v2.x)v1-maintenance (v1.x)
# ❌ Bad: Single branch for all versions4. Uji Sebelum Diluncurkan
Judul Bagian “4. Uji Sebelum Diluncurkan”# one-time: create beta and enable metadata gating# (production is set up in the complete workflow above)npx @capgo/cli@latest channel add betanpx @capgo/cli@latest channel set beta --disable-auto-update metadata
# Test on beta channel firstnpx @capgo/cli@latest bundle upload \ --channel beta \ --auto-min-update-version
# Monitor for issues, then promote to productionnpx @capgo/cli@latest bundle upload \ --channel production \ --auto-min-update-version5. Pantau Distribusi Versi
Bab berjudul “5. Pantau Distribusi Versi”Periksa dashboard Anda secara teratur:
- Apakah pengguna mengupgrade ke versi native yang lebih baru?
- Apakah versi lama masih mendapatkan lalu lintas yang tinggi?
- Apakah Anda harus menghentikan penggunaan kanal-kanal lama?
Pembandingan dengan Ionic AppFlow
Bab berjudul “Pembandingan dengan Ionic AppFlow”Untuk tim yang beralih dari Ionic AppFlowdi sini adalah bagaimana Capgo membandingkan target versi:
| Fitur | AppFlow Aplikasi Ioni | Capgo |
|---|---|---|
| Rute Berdasarkan Versi | Rute Otomatis Berdasarkan Versi Asli | Rute Otomatis Melalui defaultChannel + Strategi Banyak |
| Pengaturan Versi Semantik | Pengaturan Dasar | Pengaturan Lanjutan dengan --disable-auto-update (versi mayor/minor/patch) |
| Pengikat Versi Asli | Konfigurasi Manual di Dashboard AppFlow | Bawaan --min-update-version / --auto-min-update-version Dengan Saluran Metadata |
| Pengelolaan Saluran | Web UI + CLI | Web UI + CLI + API |
| Antarmuka Web + __CAPGO_KEEP_0__ + __CAPGO_KEEP_1__ | Pengaturan Perangkat | Full control via Dashboard/API |
| Pengaturan Lengkap melalui Dashboard/__CAPGO_KEEP_0__ | Pencegahan Penurunan Otomatis | Ya melalui --no-downgrade |
| Pemeliharaan multi-versi | Pengelolaan cabang/tujuan manual | Dengan otomatisasi dan keutamaan saluran |
| Penghosan sendiri | Tidak | Ya (pengendalian penuh) |
| Analisis versi | Sederhana | Metrik per-versi yang rinci |
Pengaturan Masalah
Membantu MasalahPengguna Tidak Menerima Perbarui
Pengguna Tidak Menerima PerbaruiPeriksa hal-hal berikut:
-
Penugasan SaluranVerifikasi perangkat berada di saluran yang benar
const channel = await CapacitorUpdater.getChannel()console.log('Current channel:', channel) -
Keterbatasan Versi: Periksa apakah bundle memiliki persyaratan versi native
- Dashboard → Paket → Periksa kolom "Versi Native"
-
Pengaturan Semver: Pastikan saluran memiliki
disable-auto-updatePengaturanTampilan Terminal npx @capgo/cli channel list -
Override Perangkat: Periksa apakah perangkat memiliki override manual
- Dashboard → Perangkat → Cari perangkat → Periksa saluran/versi
Paket Dikirim ke Versi Salah
Bagian berjudul "Paket Dikirim ke Versi Salah"- Ulasan channel default: Pastikan channel yang benar di
capacitor.config.ts - Periksa Unggah Paket: Pastikan paket telah diunggah ke channel yang dimaksudkan
- Periksa Versi Update Minimum: Konfirmasi
--min-update-version(atau--auto-min-update-version) telah ditetapkan dan channel menggunakan--disable-auto-update metadata
Pembaharuan Mendasar yang Mempengaruhi Versi Lama
Judul bagian “Pembaharuan Mendasar yang Mempengaruhi Versi Lama”- Pemulihan Langsung: Atur ulang perangkat yang terpengaruh ke paket aman
- Dashboard → Perangkat → Pilih Massal → Atur Versi
- Pembaruan Jangka Panjang: Buat saluran dengan versi dan jaga cabang terpisah
- Pencegahan: Selalu tes pembaruan pada perangkat wakil sebelum peluncuran
Pemindahan dari Ionic AppFlow
Bab Pemindahan dari Ionic AppFlowJika Anda sedang memindahkan dari Ionic AppFlow, target versi bekerja sangat mirip di Capgo, dengan fleksibilitas yang lebih baik:
Peta Konsep
Bab Peta Konsep| Konsep AppFlow | Capgo Sama dengan | Catatan |
|---|---|---|
| Jalur Deploy | Capgo Jalur | Konsep yang sama, lebih kuat |
| Pemutus Versi Asli | --min-update-version / --auto-min-update-version | Kontrol yang lebih halus |
| Prioritas Jalur | Precedensi Jalur (override → awan → default) | Precedensi yang lebih transparan |
| Target Deploy | Saluran + semver mengontrol | Strategi yang tersedia secara berbagai |
| Saluran Produksi | production saluran (atau nama apa pun) | Nama yang fleksibel |
| Penyaluran berbasis Git | CLI unggah bundle dari cabang | Alur kerja yang sama |
| Matching versi otomatis | defaultChannel + batasan versi | Diperkuat dengan strategi yang beragam |
Perbedaan Utama bagi Pengguna AppFlow
Judul Bagian berjudul “Perbedaan Utama untuk Pengguna AppFlow”- Kontrol Lebih Banyak: Capgo memberikan Anda strategi-strategi yang berbeda (saluran, semver, versi native) yang dapat digabungkan
- Keterlihatan Lebih Baik: Dashboard menampilkan distribusi versi dan masalah kompatibilitas
- API Akses: Kontrol penuh programatis atas target versi
- Penggunaan Sendiri: Opsi untuk menjalankan server pembaruan sendiri dengan logika versi yang sama
Langkah Migrasi
Judul Bagian berjudul “Langkah Migrasi”- Peta Saluran AppFlow Anda ke Capgo saluran (biasanya 1:1)
- Set
defaultChanneldicapacitor.config.tsuntuk setiap versi utama - Konfigurasi aturan semver jika Anda ingin pemblokiran otomatis di batas versi
- Upload bundle spesifik versi menggunakan
--min-update-version(saluran harus menggunakan strategi metadata) - Pantau distribusi versi di Capgo dashboard
Polanya Lanjutan
Bab berjudul “Polanya Lanjutan”Rollout Berangsur-angsur oleh Versi
Bab berjudul “Rollout Berangsur-angsur oleh Versi”// Gradually migrate v1 users to v2async function migrateUsers() { const deviceId = await CapacitorUpdater.getDeviceId() const rolloutPercentage = 10 // Start with 10%
// Hash device ID to get deterministic percentage const hash = hashCode(deviceId) % 100
if (hash < rolloutPercentage) { // User is in rollout group - migrate to v2 await CapacitorUpdater.setChannel({ channel: 'v2' }) }}Bendera Fitur oleh Versi
Bab berjudul “Bendera Fitur oleh Versi”// Enable features based on native versionasync function checkFeatureAvailability() { const info = await CapacitorUpdater.getDeviceId() const nativeVersion = info.nativeVersion
if (compareVersions(nativeVersion, '2.0.0') >= 0) { // Enable features requiring v2.0.0+ enableNewCameraFeature() }}Pengujian A/B di Antara Versi
Pengujian A/B di Antara Versi// Run A/B tests within same native versionasync function assignABTest() { const nativeVersion = await getNativeVersion()
if (nativeVersion.startsWith('2.')) { // Only A/B test on v2 users const variant = Math.random() < 0.5 ? 'v2-test-a' : 'v2-test-b' await CapacitorUpdater.setChannel({ channel: variant }) }}Ringkasan
Pengujian A/B di Antara VersiCapgo menyediakan beberapa strategi untuk pengiriman pembaruan versi tertentu:
- Routing Berdasarkan Saluran: Pemisahan otomatis versi melalui
defaultChannel - Pengujian Versi Semantik: Mencegah pembaruan di batas major/minor/patch
- Keterbatasan Versi Nativ: Membatasi versi minimum untuk bundle
- Pencegahan Turun Versi Otomatis: Tidak pernah mengirimkan bundle yang lebih tua ke versi native yang lebih baru
- Penyesuaian Perangkat: Kontrol manual untuk pengujian dan targeting
Oleh karena itu, Anda dapat mencapai pengiriman update otomatis AppFlow dengan fleksibilitas dan kontrol yang lebih banyak. Pilih strategi yang paling sesuai dengan alur versi dan pengiriman aplikasi Anda.
Untuk informasi lebih lanjut tentang fitur-fitur tertentu:
- Pedoman Perubahan Besar - Strategi penargetan versi channel yang rinci
- Pengelolaan Channel - Referensi lengkap konfigurasi channel
- Perilaku Update - Penundaan dan kondisi versi native
Teruskan dari Targeting Versi
Judul Bagian: “Teruskan dari Targeting Versi”Jika Anda menggunakan Targeting Versi untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Uji Beta untuk alur kerja produk di Solusi Uji Beta, dan Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.