ADR 0003 — Channels Capgo choisis par suffixe de bundle id
Contexte
L'app a 3 environnements (dev, staging, production) qui doivent coexister installés sur un même device pour les testeurs et le support. Chaque environnement doit recevoir ses propres OTA via Capgo sans interférer avec les autres.
Décision
- 3 bundle ids distincts :
com.buchard.app.development→ channel Capgodevcom.buchard.app.staging→ channel Capgostagingcom.buchard.app→ channel Capgoproduction
- Le channel est sélectionné au runtime dans
main.tsà partir du suffixe du bundle id récupéré viaCapApp.getInfo():ts(Amendement juillet 2026 : le code d'origine testaitconst channel = id.endsWith('.development') ? 'dev' : id.endsWith('.staging') ? 'staging' : 'production' CapacitorUpdater.setChannel({ channel }).endsWith('.dev'), qui ne matche pas le suffixe réel.development— les installs dev retombaient surproduction. Corrigé pour coller au mapping ci-dessus.) - Les builds JS sont distincts par environnement (mode Vite + dotenv), donc un bundle d'un channel n'est jamais promu à un autre.
Conséquences
- ✅ Les testeurs peuvent installer dev + staging + prod côte à côte sur leur device.
- ✅ Une release prod n'affecte pas les canaux dev/staging.
- ⚠️ Chaque environnement consomme son propre quota Capgo (3× les uploads).
- ⚠️ Renommer un environnement = renommer le bundle id ET le channel ET les configs Capgo.
- Voir aussi
docs/capgo-distribution.md.
Contributors
No contributors
Changelog
No recent changes

