Lompat ke Konten

Perubahan yang Mengganggu

Dokumentasi ini menjelaskan cara mengatasi perubahan yang mengganggu di aplikasi Anda menggunakan saluran versi. Pendekatan ini memungkinkan Anda untuk menjaga versi aplikasi yang berbeda sambil memastikan pengguna menerima pembaruan yang kompatibel.

Mari kita katakan Anda memiliki:

  • Versi aplikasi 1.2.3 (versi lama) - menggunakan saluran produksi
  • Versi aplikasi 2.0.0 (versi baru dengan perubahan yang mengganggu) - 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 Utama

Judul Bagian: Strategi: Selalu Gunakan defaultChannel untuk Versi Utama

Metode yang Dianjurkan: Tetapkan defaultChannel untuk setiap versi utama. Hal ini memastikan Anda selalu dapat memperbarui update ke kelompok pengguna tertentu tanpa bergantung pada penugasan kanal dinamis.

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'
Jendela Terminal
# Create channel for version 2.x
npx @capgo/cli channel create v2

2. Perbarui Capacitor Konfigurasi untuk Versi 2.0.0

Judul Bagian “2. Perbarui Capacitor Konfigurasi untuk Versi 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;

Judul bagian “3. Kelola Cabang Code Terpisah”

Section titled “3. Manage Separate Code Branches”

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: Tidak pernah mengirim bundle JavaScript ke aplikasi yang lebih tua yang mengharapkan native code/API yang tidak ada. Selalu bangun update dari cabang yang tepat:

  • cabang pemeliharaan v1: Untuk update ke aplikasi 1.x (saluran produksi)
  • : Untuk update ke aplikasi 2.x (saluran v2)4. Unggah Bundle ke Saluran yang Sesuai

Judul Bagian “4. Unggah Bundle ke Saluran yang Sesuai”

Jendela Terminal
Salin ke Papan Klip
# 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

Buat dan rilis versi 2.0.0 ke toko aplikasi. Semua pengguna yang mengunduh versi ini (baik pengguna baru maupun pengguna yang mengupgrade) akan secara otomatis menggunakan saluran v2 karena telah dikonfigurasi dalam bundle aplikasi.

Ketika Anda merilis versi 3.0.0 dengan perubahan yang lebih berisiko:

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
}
}
};

Sekarang Anda dapat memperbarui versi apa pun:

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

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

  1. Hapus defaultChannel dari konfigurasi Capacitor Anda
  2. Hapus saluran v2:
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

Untuk mengirimkan pembaruan yang kompatibel dengan versi 1.x:

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