Tim biasanya 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
Model saluran pertama dapat berfungsi, tetapi menciptakan gesekan jangka panjang. Dalam tim nyata, model saluran Capgo biasanya adalah yang paling bersih.
Mengapa ID aplikasi duplikat menjadi bising
Menggunakan com.myapp dan com.myapp.beta terlihat sederhana, tetapi Anda cepat mendapatkan duplikasi:
- Dua alur rilis
- Dua set ID push, tautan dalam, dan pemetaan hak istimewa
- Dua identitas analitis dan crash
- Konfigurasi yang berbeda dan perilaku yang tidak konsisten antara lingkungan
Kamu akhirnya harus mengelola dua produk di konsol toko, tim, dan instruksi QA internal.
Mengapa konfigurasi runtime sering kali berantakan
Polanya “ID aplikasi + switch runtime” biasanya berarti aplikasi membaca variabel lingkungan atau flag pada startup dan mengarahkan API, kunci, dan perilaku pembaruan secara dinamis.
Ini berfungsi sampai:
- QA mulai menghindari alur yang dimaksud karena kondisi konfigurasi sudah ketinggalan zaman,
- Seseorang menggunakan endpoint yang salah di produksi,
- perubahan lingkungan menyebabkan bug yang sulit untuk direproduksi,
- kamu perlu debug “apa versi konfigurasi ini menggunakan?” di perangkat pengguna.
Kompleksitas ini tumbuh dengan setiap rilis dan di mana tim kehilangan kecepatan.
Cara Capgo : satu ID aplikasi, banyak saluran
Capgo membuat kontrol lingkungan eksplisit melalui saluran:
- Simpan satu ID aplikasi produksi di App Store / Play.
- Kirim satu biner native untuk “shell” (sampai perubahan native memerlukan rebuild yang benar).
- Tentukan perilaku routing oleh saluran, bukan oleh identitas aplikasi yang diulang.
Dalam prakteknya, ini berarti:
production: semua penggunastaging: internal QA dan kandidat rilisbeta: tester yang diundanghotfix: jalur pembaruan darurat
Aplikasi pengujian internal Anda di TestFlight/Play dapat tetap ada ‘forever.
Anda dapat melakukan pembaruan JS/CSS/asset secara berulang di sana melalui __CAPGO_KEEP_0__ tanpa mengeluarkan aplikasi native yang baru. staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
1) Basis rilis native
1) Native release baseline
Binary native 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
Publikasikan update dengan saluran:
bun run build
bunx @capgo/cli deploy --channel staging
Test di QA, perbaiki masalah, kemudian 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 update pre-produksi:
- Tidak ada pengiriman native sering untuk setiap perubahan JS.
- QA selalu memvalidasi code dekat produksi melalui saluran pengujian.
- Pengguna produksi hanya menerima paket saluran produksi yang dipromosikan.
4) Gunakan perubahan saluran hanya untuk alur kerja yang dikendalikan
For tim advanced, terbuka saluran kontrol switch untuk pengguna QA/admin:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Ini optional. Tim kebanyakan menggunakan pengaturan saluran dari dashboard dan hanya mengganti saluran untuk pengguna internal, bukan semua pelanggan.
Daftar checklist operasional
- Hanya satu ID aplikasi (tidak ada duplikat ID produksi/tunggu)
- Hanya satu pipeline bangun asli native
- Peta saluran yang dokumentasi (
staging,beta,production,hotfix) - Jalur promosi diizinkan dalam CI/CD
- Rebuild native hanya pada perubahan native yang sebenarnya
- Rollback diuji secara teratur
Manfaat praktis
Metode ini menghilangkan pergeseran lingkungan, mengurangi perubahan bangun, dan mempercepat perbaikan:
- QA mendapatkan biner yang realistis (tidak ada identitas
- path Anda di TestFlight tetap stabil,
- tim Anda menghindari "utang ID aplikasi dua,"
- Anda dapat menerapkan banyak perbaikan JS hanya melalui Capgo dengan cepat.
Hasilnya adalah pengelolaan yang lebih sederhana: lebih sedikit artefak, telemetri yang lebih bersih, dan lebih sedikit kejutan dalam operasi rilis.
Teruslah 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 Cloudflare untuk detail implementasi di Cloudflare, Cloudflare untuk detail implementasi di Cloudflare, Saluran untuk detail implementasi di Saluran, Pengujian Beta untuk alur kerja produk di Pengujian Beta, dan Pengaturan Target Versi untuk alur kerja produk di Pengaturan Target Versi.