Lompat ke konten

Perubahan Break

Documentasi ini menjelaskan cara mengatasi perubahan besar dalam aplikasi Anda menggunakan saluran yang versi. Pendekatan ini memungkinkan Anda untuk menjaga versi aplikasi yang berbeda sambil memastikan pengguna menerima pembaruan yang kompatibel.

Bayangkan Anda memiliki:

  • Aplikasi versi 1.2.3 (versi lama) - menggunakan saluran produksi
  • Aplikasi versi 2.0.0 (versi baru dengan perubahan besar) - menggunakan saluran v2
  • Pembaruan hidup 1.2.4 (kompatibel dengan 1.2.3)
  • Pembaruan hidup 2.0.1 (kompatibel dengan 2.0.0)

Strategi: Selalu Gunakan defaultChannel untuk Versi Besar

Judul Bagian berjudul “Strategi: Selalu Gunakan defaultChannel untuk Versi Besar”

Saran yang disarankan: Set sebuah defaultChannel untuk setiap versi besar. Dengan demikian, Anda dapat selalu membarui aplikasi untuk kelompok pengguna tertentu tanpa harus bergantung pada penugasan saluran dinamis.

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'

1. Buat Saluran untuk Versi Baru

Membuat Saluran untuk Versi Baru
Jendela Terminal
# Create channel for version 2.x
npx @capgo/cli channel create v2

2. Perbarui Konfigurasi Capacitor untuk Versi 2.0.0

Section titled “2. Update Capacitor Config for Version 2.0.0”

Perbarui konfigurasi Capacitor Anda sebelum membangun versi 2.0.0 untuk toko aplikasi:

capacitor.config.ts
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;

Buat cabang Git terpisah untuk menjaga konsistensi antara versi aplikasi:

Jendela terminal
# Create and maintain a branch for version 1.x updates
git checkout -b v1-maintenance
git push origin v1-maintenance
# Your main branch continues with version 2.x development
git checkout main

Kritis: Hindari selalu mengirim bundle JavaScript ke aplikasi lama yang mengharapkan code/API native yang tidak ada. Selalu bangun update dari cabang yang tepat:

  • Cabang pemeliharaan v1: Untuk update aplikasi 1.x (saluran produksi)
  • cabang utama: Untuk pembaruan ke aplikasi 2.x (saluran v2)

4. Unggah Paket ke Saluran yang Sesuai

Judul Bagian “4. Unggah Paket ke Saluran yang Sesuai”
Jendela Terminal
# For 1.x updates: Build from v1-maintenance branch
git checkout v1-maintenance
# Make your 1.x compatible changes here
npx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branch
git checkout main
# Make your 2.x changes here
npx @capgo/cli bundle upload --channel v2
Jendela Terminal
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

Bangun dan distribusikan versi 2.0.0 ke toko aplikasi. Semua pengguna yang mengunduh versi ini (baik pengguna baru maupun pengguna yang mengupgrade) secara otomatis akan menggunakan saluran v2 karena sudah diatur dalam bundle aplikasi.

Saat Anda merilis versi 3.0.0 dengan perubahan yang lebih besar:

Tampilan jendela terminal
# Create channel for version 3.x
npx @capgo/cli channel create v3
// capacitor.config.ts for version 3.0.0
const config: CapacitorConfig = {
// ...
plugins: {
CapacitorUpdater: {
defaultChannel: 'v3' // Version 3.x users
}
}
};

Now Anda dapat memperbarui versi apa saja:

  • production channel → Pengguna Versi 1.x
  • v2 channel → Pengguna Versi 2.x
  • v3 channel → Pengguna Versi 3.x

Setelah semua pengguna telah bermigrasi ke versi 2.x (hitung 3-4 bulan):

  1. Hapus defaultChannel dari konfigurasi Capacitor Anda
  2. Hapus saluran v2:
Tampilan Jendela Terminal
npx @capgo/cli channel delete v2
  1. Hapus cabang v1-maintenance:
Jendela terminal
git branch -d v1-maintenance
git push origin --delete v1-maintenance

Selalu tes pembaruan secara menyeluruh di setiap saluran sebelum pengiriman

Mengirimkan pembaruan yang kompatibel dengan versi 1.x:

  1. Switch ke cabang v1-maintenance:
Jendela terminal
git checkout v1-maintenance
  1. Lakukan perubahan dan commit:
Jendela terminal
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. Bangun dan unggah ke saluran produksi:
Jendela terminal
npx @capgo/cli bundle upload --channel production

Jika Anda menggunakan Perubahan yang Mengganggu untuk merencanakan routing kanal dan peluncuran tahap demi tahap, hubungkannya dengan Saluran context":"Fitur nama saluran rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Pesan kunci `solutions_white_label_visual_cell2_value` (Nilai Sel Tampilan Putih Label Solusi). untuk detail implementasi di Saluran, Saluran context":"Fitur nama saluran rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Pesan kunci `solutions_white_label_visual_cell2_value` (Nilai Sel Tampilan Putih Label Solusi). untuk detail implementasi di Saluran,","Saluran","context":"Fitur nama saluran rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Pesan kunci `solutions_white_label_visual_cell2_value` (Nilai Sel Tampilan Putih Label Solusi).","untuk detail implementasi di Saluran,","Saluran","context":"Fitur nama saluran rilis Capgo. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Pesan kunci `solutions_white_label_visual_cell2_value` (Nilai Sel Tampilan Putih Label Solusi)." Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.