Perubahan Penting
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Dokumentasi ini menjelaskan cara menangani breaking changes pada aplikasi Anda menggunakan versioned channels. Pendekatan ini memungkinkan Anda mengelola berbagai versi aplikasi sambil memastikan pengguna menerima update yang kompatibel.
Contoh Skenario
Bagian berjudul “Contoh Skenario”Misalnya Anda memiliki:
- Versi aplikasi 1.2.3 (versi lama) - menggunakan production channel
- Versi aplikasi 2.0.0 (versi baru dengan breaking changes) - menggunakan v2 channel
- Live update 1.2.4 (kompatibel dengan 1.2.3)
- Live update 2.0.1 (kompatibel dengan 2.0.0)
Strategi: Selalu Gunakan defaultChannel untuk Versi Major
Bagian berjudul “Strategi: Selalu Gunakan defaultChannel untuk Versi Major”Pendekatan yang direkomendasikan: Atur defaultChannel untuk setiap versi major. Ini memastikan Anda selalu bisa push update ke grup user tertentu tanpa bergantung pada penentuan channel dinamis.
// Version 1.x releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Buat Channel untuk Versi Baru
Bagian berjudul “1. Buat Channel untuk Versi Baru”# Create channel for version 2.xnpx @capgo/cli channel add v22. Update Config Capacitor untuk Versi 2.0.0
Bagian berjudul “2. Update Konfigurasi Capacitor untuk Versi 2.0.0”Perbarui konfigurasi Capacitor Anda sebelum melakukan build versi 2.0.0 untuk app store:
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { appId: 'com.example.app', appName: 'Example App', plugins: { CapacitorUpdater: { // ... other options defaultChannel: 'v2' // All 2.0.0 users will use v2 channel } }};
export default config;3. Kelola Branch Code Terpisah
Bagian berjudul “3. Kelola Branch Code Terpisah”Buat branch Git terpisah untuk menjaga kompatibilitas antar versi aplikasi:
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Your main branch continues with version 2.x developmentgit checkout mainPenting: Jangan pernah push bundle JavaScript ke aplikasi lama yang mengharapkan code/API native yang tidak dimilikinya. Selalu build update dari branch yang sesuai:
- branch v1-maintenance: Untuk update aplikasi 1.x (production channel)
- branch main: Untuk update aplikasi 2.x (v2 channel)
4. Upload Bundle ke Channel Masing-masing
Bagian berjudul “4. Upload bundle ke channel masing-masing”# For 1.x updates: Build from v1-maintenance branchgit checkout v1-maintenance# Make your 1.x compatible changes herenpx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branchgit checkout main# Make your 2.x changes herenpx @capgo/cli bundle upload --channel v25. Aktifkan Self-Assignment
Bagian berjudul “5. Aktifkan Self-Assignment”# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Deploy ke App Store
Bagian berjudul “6. Deploy ke App Store”Build dan deploy versi 2.0.0 ke app store. Semua user yang download versi ini (baik user baru maupun user lama yang upgrade) akan otomatis menggunakan channel v2 karena sudah dikonfigurasi di dalam app bundle.
Scaling ke Versi Mendatang
Bagian berjudul “Scaling to Future Versions”Saat Anda merilis versi 3.0.0 dengan lebih banyak breaking changes:
# Create channel for version 3.xnpx @capgo/cli channel add v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};Sekarang Anda bisa push update ke versi mana pun:
productionchannel → Pengguna Versi 1.xv2channel → Pengguna Versi 2.xv3channel → Pengguna Versi 3.x
7. Cleanup (Setelah Migrasi)
Bagian berjudul “7. Cleanup (Setelah Migrasi)”Setelah semua user bermigrasi ke versi 2.x (sekitar 3-4 bulan):
- Hapus
defaultChanneldari konfigurasi Capacitor Anda - Hapus channel v2:
npx @capgo/cli channel delete v2- Hapus branch v1-maintenance:
git branch -d v1-maintenancegit push origin --delete v1-maintenanceSelalu uji update secara menyeluruh di setiap channel sebelum deployment
Mempertahankan Update Versi 1.x
Bagian berjudul “Mempertahankan Update Versi 1.x”Untuk mengirim update yang kompatibel dengan versi 1.x:
- Pindah ke branch v1-maintenance:
git checkout v1-maintenance- Lakukan perubahan dan commit:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Build dan upload ke production channel:
npx @capgo/cli bundle upload --channel productionLanjutkan dari Breaking Changes
Bagian berjudul “Melanjutkan dari Breaking Changes”Jika Anda menggunakan Perubahan Penting untuk merencanakan routing channel dan staged rollout, hubungkan dengan Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Channel untuk detail implementasi di Channels, Solusi Beta Testing untuk workflow produk di Solusi Beta Testing, dan Solusi Version Targeting untuk workflow produk di Version Targeting Solution.