Pengaturan Versi
Copy prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Panduan ini menjelaskan cara mengirimkan bundle terbaru yang kompatibel ke pengguna berdasarkan versi aplikasi asli mereka, seperti pendekatan Ionic AppFlowMengoptimalkan pengelolaan update dan mempercepat peluncuran sambil mencegah masalah kompatibilitas.
Sistem target versi Capgo memungkinkan Anda untuk:
- ke pengguna berdasarkan versi aplikasi native mereka Ditargetkan ke pengguna berdasarkan versi aplikasi aslinya
- Mencegah perubahan yang memecah mencegah versi aplikasi yang tidak kompatibel
- Manajemen versi aplikasi yang berbeda secara bersamaan tanpa logika kompleks
- Perbaruan yang lancar ke segmen pengguna tertentu
Mengapa Targeting Versi Penting (Terutama bagi Pengguna AppFlow)
Judul bagian “Mengapa Targeting Versi Penting (Terutama bagi Pengguna AppFlow)”Jika Anda sudah familiar dengan Ionic AppFlow, Anda tahu betapa pentingnya memastikan pengguna hanya menerima perbaruan yang kompatibel. AppFlow secara otomatis memasangkan live update bundle dengan versi aplikasi native, sehingga mencegah JavaScript yang tidak kompatibel untuk versi aplikasi native yang lebih tua 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:
- Kamu memiliki pengguna pada versi mayor yang berbeda dari aplikasi kamu (misalnya, v1.x, v2.x, v3.x)
- Kamu perlu mempertahankan konsistensi ke belakang saat mengeluarkan perubahan yang mengganggu
- Kamu ingin mencegah bundle yang lebih baru mengganggu native code yang lebih tua
- Kamu sedang mengalihkan pengguna secara bertahap dari satu versi ke versi lain
- Kamu sedang mengalihkan dari AppFlow dan ingin mempertahankan keamanan update yang sama
Bagaimana Cara Kerjanya
Judul Bagian “Cara Kerjanya”Capgo menggunakan pendekatan multi-layer untuk mencocokkan pengguna dengan pembaruan yang kompatibel:
- Keterbatasan Versi Nativ: Mencegah bundle dari pengiriman ke versi native yang tidak kompatibel
- Routing Berdasarkan Saluran: Mengarahkan versi aplikasi yang berbeda ke saluran pembaruan yang berbeda
- Pengendalian Versi Semantik: Mengblokir otomatis pembaruan di batas major/minor/patch
- Penyesuaian Level Perangkat: Mengarahkan perangkat atau kelompok pengguna tertentu
Alur Pencocokan Versi
Judul Bagian “Alur Pencocokan 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 Channel
Judul Bagian “Strategi 1: Rute Versi Berdasarkan Channel”Ini adalah metode yang disarankan untuk mengelola perubahan yang memecah dan pembaruan versi utama. Ini mirip dengan model pengiriman AppFlow.
Skenario Contoh
Judul Bagian “Skenario Contoh”- Aplikasi v1.x (100.000 pengguna) →
productionchannel - Aplikasi v2.x (50.000 pengguna dengan perubahan besar) →
v2saluran - Aplikasi v3.x (10.000 pengguna beta) →
v3saluran
Pengimplementasian
Judul Bagian “Pengimplementasian”Langkah 1: Konfigurasi Saluran untuk Setiap Versi Utama
Judul Bagian “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 add productionnpx @capgo/cli channel add v2npx @capgo/cli channel add 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 v3Keuntungan
Judul Bagian: Keuntungan- Tidak ada perubahan code apa pun - Routing saluran kanal terjadi secara otomatis
- Pemisahan yang jelas - Setiap versi memiliki jalur pembaruan sendiri
- Target yang fleksibel - Sampaikan pembaruan ke kelompok versi tertentu
- Rollout yang aman - Perubahan besar tidak akan mencapai versi yang tidak kompatibel
Strategi 2: Pengendalian Versi Semantik
Judul Bagian: Strategi 2: Pengendalian Versi SemantikGunakan Capgo’s built-in Pengendalian versi semantik bawaan Untuk mencegah pembaruan di batas versi.
Pengaturan Auto-Update yang Dibatasi Versi Utama
Judul Bagian “Pengaturan Auto-Update yang Dibatasi Versi Utama”# Create a channel that blocks major version updatesnpx @capgo/cli channel add stablenpx @capgo/cli channel set 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 automatically
- Mencegah perubahan yang mengganggu mencapai native code yang lebih tua
- Perbandingan menggunakan basis native yang dikirim sebagai
version_build
Opsi Kontrol yang Granular
Judul Bagian “Opsi Kontrol yang Granular”# 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 Asli
Judul Bagian ‘Strategi 3: Konstrain Versi Nama Asli’Spesifikasikan versi nama asli aplikasi minimal (min_update_version) pada setiap bundle, sehingga Capgo hanya mengirimkannya ke perangkat yang memiliki biner asli yang cukup baru.
Ini menggunakan strategi metadata saluran ( ) plus atau--disable-auto-update metadata) plus --min-update-version or --auto-min-update-version Terdapat pada unggah. Tidak ada --native-version flag CLI.
aktifkan target metadata pada saluran
Judul Bagian: Aktifkan Target Metadata pada Saluran# one-time: require min_update_version metadata on uploads to this channelnpx @capgo/cli@latest channel set production --disable-auto-update metadataTetapkan versi native minimum pada unggah
Judul Bagian: Tetapkan Versi Native Minimum pada UnggahSaat mengunggah sebuah paket, masukkan versi native terendah yang mungkin menerima:
# 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 menentukan lantai dari kompatibilitas paket native:
npx @capgo/cli@latest bundle upload \ --channel production \ --auto-min-update-versionPenggunaan Kasus
Bab berjudul “Penggunaan Kasus”-
Penggunaan Plugin Native Baru Diperlukan
Jendela Terminal # Bundle needs Camera plugin added in v2.0.0npx @capgo/cli@latest bundle upload \--channel production \--min-update-version "2.0.0" -
Pembaruan Natively API yang Mengubah
Jendela Terminal # Bundle uses new Capacitor 6 APIsnpx @capgo/cli@latest bundle upload \--channel production \--min-update-version "3.0.0" -
Migrasi Langsung
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 Pengurangan Otomatis
Bab berjudul “Strategi 4: Pencegahan Pengurangan Otomatis”Hindari pengguna menerima paket yang lebih tua dari versi native mereka saat ini.
Dengan mengaktifkan di Pengaturan Saluran
Judul Bagian berjudul “Aktifkan di Pengaturan Saluran”Pada Capgo dashboard:
- Pergi ke Saluran Pilih saluran Anda
- Enable Matikan penurunan otomatis di bawah native
- “Nonaktifkan auto downgrade di native”
Melalui CLI punya.
npx @capgo/cli@latest channel set production --no-downgradeExample
Judul Bagian: “Contoh”- Perangkat pengguna: Versi asli 1.2.5
- Saluran Paket: Versi 1.2.3
- Hasil: Perbaruan diblokir (akan menjadi penurunan versi)
Manfaatnya adalah:
- 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 Level Perangkat
Judul Bagian: “Strategi 5: Targeting Level Perangkat”Mengatasi penugasan saluran untuk perangkat atau kelompok pengguna tertentu.
Force Versi Spesifik untuk Pengujian
Bagian berjudul “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 Penggantian Perangkat
Bagian berjudul “Dashboard Penggantian Perangkat”Pada Capgo dashboard:
- Pergi ke Perangkat Temukan perangkat
- Click Klik or Set Versi
- Override dengan spesifik saluran atau versi paket
- Ponsel akan menerima pembaruan dari sumber yang diubah
Alur Kerja Lengkap AppFlow-Style
Bab berjudul “Alur Kerja Lengkap AppFlow-Style”Contoh lengkap yang menggabungkan semua strategi:
1. Pengaturan Awal (Aplikasi v1.0.0)
Bab berjudul “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 Pecah (Aplikasi v2.0.0)
Judul Bagian “2. Perubahan Pecah (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 Kedua
Judul Bagian “3. Kirim Perbarui ke Versi Kedua”# 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:
- Banyak pengguna yang menggunakan 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 Channel
Section titled “Channel Precedence”Ketika ada beberapa konfigurasi saluran, Capgo mengikuti urutan prioritas berikut:
- Mengatasi Perangkat (Dashboard atau API) - Prioritas tertinggi dan terlihat di UI Penggeser Perangkat
- Saluran Plugin Lokal via
setChannel()- Tersimpan di perangkat hanya dan tidak ditampilkan di UI Mengatasi Perangkat - saluranDefault dalam capacitor.config.ts
- Saluran Bawaan (Pengaturan Cloud) - Prioritas terendah
Praktik Terbaik
Judul bagian ‘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. Periksa Distribusi Versi
Judul Bagian “5. Periksa 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?
- Should you deprecate old channels?
Perbandingan dengan Ionic AppFlow
Judul Bagian “Perbandingan dengan Ionic AppFlow”Untuk tim yang beralih dari Ionic AppFlowberikut ini adalah bagaimana Capgo membandingkan target versi:
| Fitur | App Ionic Flow | Capgo |
|---|---|---|
| Pengaturan Versi Berdasarkan Rute | Pengaturan Otomatis Berdasarkan Versi Nadi | Pengaturan Otomatis Melalui defaultChannel + Strategi Banyak |
| Pengaturan Versi Semantik | Dukungan Dasar | Dukungan Lanjutan dengan --disable-auto-update (Major/Minor/Patch) |
| Pengaturan Versi Nadi | Pengaturan Tangan di Dashboard AppFlow | Built-in --min-update-version / --auto-min-update-version dengan saluran metadata |
| Pengelolaan Saluran | Antarmuka Web + CLI | Antarmuka Web + CLI + API |
| Pengaturan Perangkat | Kontrol terbatas pada tingkat perangkat | Penuh melalui Dashboard/API |
| Pencegahan penurunan otomatis | Ya | Ya melalui --no-downgrade |
| Pemeliharaan multi-versi | Pengelolaan cabang/manual secara manual | Dengan otomatisasi dan keutamaan saluran |
| Self-hosting | Tidak | Ya (pengendalian penuh) |
| Analisis versi | Sederhana | Metrik per-versi yang rinci |
Troubleshooting
Bagian berjudul ‘Pengaturan’Pengguna Tidak Menerima Perbaruan
Bagian berjudul ‘Pengguna Tidak Menerima Perbaruan’Periksa hal-hal berikut:
-
Pengaturan Saluran: Pastikan perangkat Anda berada di saluran yang benar
const channel = await CapacitorUpdater.getChannel()console.log('Current channel:', channel) -
Keterbatasan Versi: Periksa apakah paket memiliki persyaratan versi native
- Dashboard → Paket → Periksa kolom ‘Versi Asli’
-
Pengaturan Semver: Verifikasi saluran’s
disable-auto-updatePengaturanJendela Terminal npx @capgo/cli channel list -
Tidak Langsung: Periksa jika perangkat memiliki pengaturan manual
- Dashboard → Perangkat → Cari perangkat → Periksa saluran/versi
Bundle Dikirimkan ke Versi Salah
Bab berjudul “Bundle Dikirimkan ke Versi Salah”- Ulas defaultChannel: Pastikan saluran yang benar di
capacitor.config.ts - Periksa Unggahan Paket: Pastikan paket telah diunggah ke saluran yang diinginkan
- Periksa versi update terbaru: Konfirmasi
--min-update-version(atau--auto-min-update-versionChannel tersebut menggunakan versi yang ditargetkan.--disable-auto-update metadata
Perubahan Mendasar yang Mempengaruhi Versi Lama
Pembaharuan Berbahaya yang Mempengaruhi Versi Lama- Perbaikan Langsung: Mengatur ulang perangkat yang terpengaruh ke bundle aman
- : Atur perangkat yang terpengaruh ke paket aman
- Patch Jangka Panjang: Buat saluran versi dan jaga cabang terpisah
- Preventif: Selalu tes pembaruan pada perangkat perwakilan sebelum peluncuran
Migrasi dari Ionic AppFlow
Bagian berjudul “Migrasi dari Ionic AppFlow”Jika Anda bermigrasi dari Ionic AppFlow, target versi bekerja sangat mirip di Capgo, dengan fleksibilitas yang diperbaiki:
Peta Konsep
Bagian berjudul “Peta Konsep”| Konsep AppFlow | Capgo Sama Dengan | Catatan |
|---|---|---|
| Saluran Deploy | Capgo Saluran | Konsep yang sama, lebih kuat |
| Pembaruan Versi Asli | --min-update-version / --auto-min-update-version | Kontrol yang lebih halus |
| Prioritas Saluran | Precedensi Saluran (override → cloud → default) | Precedensi yang lebih transparan |
| Target Pembaruan | Saluran + semver mengontrol | Strategi yang tersedia lebih dari satu |
| Saluran Produksi | production saluran (atau nama lain) | Penamaan Fleksibel |
| Penyalinan Berbasis Git | CLI unggah bundle dari cabang | Alur Kerja yang Sama |
| Pemilihan Versi Otomatis | defaultChannel Konstrain Versi (+) | Diperkuat dengan Strategi Banyak |
Perbedaan Utama bagi Pengguna AppFlow
Bab berjudul “Perbedaan Utama bagi Pengguna AppFlow”- Pengendalian Lebih Lengkap: Capgo memberikan strategi yang berbeda-beda (saluran, semver, versi native) yang dapat digabungkan
- Keterlihatan yang Lebih Baik: Dashboard menampilkan distribusi versi dan masalah kompatibilitas
- : Akses API: Kontrol Penuh Programatik atas Target Versi
- Self-Hosting: Opsi untuk menjalankan server pembaruan sendiri dengan logika versi yang sama
Langkah-Langkah Pemindahan
: Bagian berjudul “Langkah-Langkah Pemindahan”- Peta Saluran AppFlow Anda ke Capgo saluran (biasanya 1:1)
- Setelkan ‘
defaultChanneldicapacitor.config.tsuntuk setiap versi utama - Konfigurasi aturan semver jika Anda ingin pemblokiran otomatis di batas versi
- Unggah paket versi tertentu menggunakan
--min-update-version(saluran harus menggunakan strategi metadata) - Monitor distribusi versi di Capgo dashboard
Pola Lanjutan
Bab berjudul “Pola 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
Bab berjudul “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
Judul Bagian “Ringkasan”Capgo menyediakan beberapa strategi untuk pengiriman update yang spesifik versi:
- Routing Berdasarkan Saluran: Pemisahan versi otomatis melalui
defaultChannel - Versi Semantik: Mencegah update di antara batas-batas mayor/minor/patch
- Keterbatasan Versi Asli: Mengharuskan versi asli minimum untuk bundle
- Pencegahan Turun Versi OtomatisTidak pernah kirim bundle yang lebih lama ke versi native yang lebih baru
- Pengaturan Perangkat: Kontrol manual untuk pengujian dan targeting
Oleh karena itu, Anda dapat mencapai pengiriman pembaruan otomatis AppFlow dengan lebih fleksibel dan kontrol dengan menggabungkan strategi-strategi ini. Pilihlah pendekatan yang paling sesuai dengan alur versi dan pengiriman aplikasi Anda.
Untuk informasi lebih lanjut tentang fitur tertentu:
- Petunjuk Perubahan Break - Strategi versi kanal rinci
- Pengelolaan Kanal - Referensi konfigurasi kanal lengkap
- Behavior Pembaruan - Penundaan dan kondisi versi asli
Teruskan dari Targeting Versi
Bagian berjudul “Teruskan dari Targeting Versi”Jika Anda menggunakan Pengaturan 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, Pengujian Beta Solusi untuk alur kerja produk di Pengujian Beta Solusi, dan Pengaturan Versi Solusi untuk alur kerja produk di Pengaturan Versi Solusi.