Biasanya tim memilih salah satu dari tiga pendekatan untuk lingkungan mobile:
- Dua ID Aplikasi (produksi + pra-produksi)
- Satu ID Aplikasi + switching lingkungan runtime dinamis
- Satu ID Aplikasi + Capgo saluran
Kedua cara pertama dapat berfungsi, tetapi mereka menciptakan gesekan jangka panjang. Dalam tim nyata, model saluran Capgo biasanya adalah yang paling bersih.
Mengapa ID Aplikasi Diperdulang Menjadi Berisik
Menggunakan com.myapp dan com.myapp.beta terlihat sederhana, tapi kamu akan segera mengalami duplikasi:
- Enviroment Pengembangan Dua
- Dua Set ID Pengiriman, Tautan dalam Negeri, dan Peta Entitlement
- Dua Identitas Analitik dan Kecelakaan
- Konfigurasi yang Berbeda dan Sifat yang Tidak Konsisten antara Enviroment
Kamu Akhirnya Mengelola Dua Produk di Konsole Toko, Tim, dan Instruksi QA Internal.
Mengapa Konfigurasi Runtime-Switching Sering Kacau
The “one app ID + runtime switch” pattern usually means your app reads environment variables or flags at startup and re-routes APIs, keys, and update behavior dynamically.
Satu ID Aplikasi + Switch Runtime
- QA mulai menghindari alur yang dimaksud karena status konfigurasi sudah ketinggalan zaman,
- Seseorang menggunakan endpoint yang salah di produksi.
- perubahan lingkungan menyebabkan bug sulit untuk direproduksi
- Anda perlu memeriksa "versi konfigurasi apa yang digunakan oleh file biner ini?" di perangkat pengguna.
Kemudahan itu tumbuh dengan setiap rilis dan di mana tim kehilangan kecepatan.
Metode Capgo: satu ID aplikasi, banyak saluran.
Capgo membuat kontrol lingkungan eksplisit melalui saluran:
- Tahan satu ID aplikasi produksi di App Store / Play.
- Kirim satu biner asli untuk “shell” (sampai perubahan asli memerlukan pembangunan yang benar-benar ulang).
- Rute perilaku oleh saluran, bukan oleh identitas aplikasi yang diulang.
Dalam prakteknya, ini berarti:
production: semua penggunastaging: QA internal dan kandidat rilisbeta: tester yang diundanghotfix: jalur pembaruan darurat
Aplikasi pengujian internal Anda di TestFlight/Play dapat tetap pada staging selamanya.
Anda melakukan pembaruan JS/CSS/asset di sana berulang kali melalui Capgo tanpa mempublikasikan aplikasi native baru.
Struktur yang disarankan dalam praktek
1) Basis rilis native
Binary native terakhir Anda tetap sama untuk banyak iterasi JS:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Anda hanya membangun kembali binary native ketika Anda benar-benar mengubah area permukaan native.
2) Gunakan saluran dedikasi untuk lingkungan
Publish pembaruan dengan saluran:
bun run build
bunx @capgo/cli deploy --channel staging
Uji coba di QA, perbaiki masalah, lalu promosikan:
bunx @capgo/cli promote vX.Y.Z --channel production
Jika Anda lebih suka versi eksplisit:
bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production
3) Tahan TestFlight 'selalu pre-prod'
Dalam alur kerja iOS, hal ini berarti build TestFlight Anda dapat tetap terkait dengan pembaruan pre-produksi:
- Tidak ada pengiriman native seringan untuk setiap perubahan JS.
- QA selalu memvalidasi code yang mirip produksi melalui saluran staging.
- Pengguna produksi hanya menerima paket saluran produksi yang dipromosikan.
4) Gunakan penggantian saluran hanya untuk alur kerja yang dikendalikan
Untuk tim yang lebih maju, tunjukkan penggantian saluran yang dikendalikan untuk pengguna QA/admin:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Ini adalah opsional. Banyak tim menggunakan penugasan saluran dari dashboard dan hanya mengganti saluran untuk pengguna internal, bukan semua pelanggan.
Dokumen Checklist Operasional
- Hanya satu ID aplikasi (tidak ada ID produksi/staging yang duplikat)
- Hanya satu pipeline pembangunan native dasar
- Peta saluran yang dokumentasi (
staging,beta,production,hotfix) - Jalur promosi yang dijamin dalam CI/CD
- Rebuild native hanya pada perubahan native yang sebenarnya
- Rollback diuji secara teratur
Manfaat Praktis
This approach removes environment drift, reduces build churn, and speeds fixes:
- QA mendapatkan aplikasi yang realistis (tidak palsu “identitas aplikasi staging”),
- jalur TestFlight Anda tetap stabil,
- tim Anda menghindari “utang dua ID aplikasi,”
- Anda dapat meneruskan banyak perbaikan JavaScript melalui Capgo dengan cepat.
Gubernan yang lebih sederhana: lebih sedikit artefak, telemetri yang lebih bersih, dan lebih sedikit kejutan dalam operasi rilis.
Teruskan dari Capgo Environment Best Practices: Staging dengan Satu ID Aplikasi Mobile
Jika Anda menggunakan Capgo Environment Best Practices: Staging dengan Satu ID Aplikasi Mobile untuk merencanakan routing saluran dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran untuk detail implementasi di Channels, Saluran untuk detail implementasi di Channels, Saluran untuk detail implementasi di Channels, Sistem Uji Coba Beta untuk alur kerja produk dalam Solusi Pengujian Beta Solusi Target Versi untuk alur kerja produk dalam Solusi Target Versi.