Les équipes choisissent généralement l'une des trois approches pour les environnements mobiles :
- Deux ID d'application (production + pré-production)
- Un ID d'application + la mise en route dynamique de l'environnement
- Un ID d'application + les canaux Capgo
Les deux premiers peuvent fonctionner, mais ils créent une friction à long terme. Dans les équipes réelles, le modèle de canal Capgo est généralement le plus propre.
Pourquoi les ID d'application dupliqués deviennent bruyants
En utilisant com.myapp et com.myapp.beta context
- semble simple, mais vous obtenez rapidement des duplicatas :
- Deux pipelines de mise à jour
- Deux ensembles d'IDs de push, de liens profonds et de mappage d'entitlement
- Deux identités d'analytique et de crash
Une configuration divergente et un comportement incohérent entre les environnements
Vous finissez par gérer deux produits sur les consoles de magasin, les équipes et les instructions de test interne.
Pourquoi la configuration de basculement en temps d'exécution est souvent embrouillée : La « forme d'ID d'application + basculement de runtime » signifie généralement que votre application lit les variables d'environnement ou les drapeaux au démarrage et redirige les API, les clés et le comportement de mise à jour dynamiquement.
Ce fonctionne jusqu'à ce que :
- Le QA commence à contourner les flux prévus car l'état de la configuration est obsolète,
- quelqu'un utilise le mauvais endpoint en production,
- le dérive de l'environnement entraîne des bogues difficiles à reproduire,
- vous devez déboguer « quelle version de la configuration est-ce que ce binaire utilise ? » sur un appareil utilisateur.
Cette complexité augmente avec chaque mise à jour et c'est là que les équipes perdent de la vitesse.
La méthode Capgo : un ID d'application unique, plusieurs canaux
Capgo contrôle l'environnement de manière explicite à l'aide de canaux :
- Conservez un ID d'application de production unique sur l'App Store / Play.
- Envoyez un binaire natif unique pour la « coquille » (jusqu'à ce que des changements natifs nécessitent une véritable reconstruction).
- Routez le comportement par canal, et non par une identité d'application dupliquée.
En pratique, cela signifie :
production: tous les utilisateursstaging: les candidats à la mise en production et les équipes QA internesbeta: les testeurs invitéshotfix: la piste de mise à jour d'urgence
Votre application de test interne TestFlight/Play peut rester à l'ancienne. staging Vous pouvez effectuer des mises à jour de JS/CSS/actifs à l'intérieur de Capgo sans publier une nouvelle application native.
Structure recommandée en pratique
1) Base de mise en production native
Votre dernier binaire natif reste le même pour de nombreuses itérations de JS :
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Vous n'avez besoin de reconstruire le binaire natif que lorsque vous avez effectué des modifications dans la surface native.
2) Utilisez des canaux dédiés pour les environnements
Publiez des mises à jour avec des canaux :
bun run build
bunx @capgo/cli deploy --channel staging
Testez sur QA, corrigez les problèmes, puis promouvez :
bunx @capgo/cli promote vX.Y.Z --channel production
Si vous préférez une version explicite :
bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production
3) Gardez TestFlight « toujours pré-prod »
Dans les workflows iOS, cela signifie que votre build TestFlight peut rester associé aux mises à jour pré-production :
- Aucune soumission native fréquente pour chaque changement JS.
- QA valide toujours les code près de la production via le canal de pré-production.
- Seuls les utilisateurs de production reçoivent les paquets de canal de production promus.
4) Utilisez uniquement les commutateurs de canal pour des workflows contrôlés
Pour les équipes avancées, exposez les commutateurs de canal contrôlés pour les utilisateurs QA/admin :
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Ceci est facultatif. La plupart des équipes utilisent les affectations de canal depuis le tableau de bord et ne changent que le canal pour les utilisateurs internes, pas tous les clients.
Liste de vérification opérationnelle
- Un seul ID d'application (pas de duplicatas des IDs de production/pré-production)
- Une pipeline de construction native de base
- La cartographie du canal est documentée (
staging,beta,production,hotfix) - Le chemin de promotion est appliqué dans CI/CD
- Seul le rebuild natif est effectué en cas de vraies modifications natives
- Le rollback est testé régulièrement
Avantage pratique
Cette approche supprime la dérive de l'environnement, réduit la turbulence de construction et accélère les corrections :
- Les QA obtiennent des binaires réalistes (pas d'identité de fake « staging app »),
- Votre chemin de TestFlight reste stable,
- Votre équipe évite le « debt de deux ID d'application »,
- Vous pouvez envoyer rapidement de nombreuses corrections JS uniquement via Capgo.
Le résultat final est une gouvernance plus simple : moins d'artefacts, des données de télémétrie plus propres et moins de surprises dans les opérations de mise en production.
Continuez de Capgo Pratiques de l'environnement : Étape avec un seul ID d'application mobile
Si vous utilisez Capgo Pratiques de l'environnement : Étape avec un seul ID d'application mobile pour planifier la mise en route des canaux et la mise en production étalée, connectez-l’avec Canaux Canaux Canal Canal Canal Solution de test bêta pour le flux de travail du produit dans Solution de test bêta, et et Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.