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'applications dupliqués deviennent bruyants
En utilisant com.myapp et com.myapp.beta semble simple, mais vous obtenez rapidement des duplicatas :
- Deux pipelines de publication
- Deux ensembles d'IDs de push, de liens profonds et de mappage d'entitlements
- Deux identités d'analytique et de crash
- Des configurations divergentes et des comportements incohérents entre 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
Le modèle « un ID d'app + basculement en temps d'exécution » signifie généralement que votre application lit les variables d'environnement ou les drapeaux au démarrage et re-routifie les API, les clés et le comportement de mise à jour dynamiquement.
Cela 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.
The Capgo way: one app ID, many channels
Capgo makes environment control explicit through channels:
- Conservez une ID d'application de production unique dans l'App Store / Play.
- Envoyez une seule application native pour la « coquille » (jusqu'à ce que des changements natives 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: QA et candidats à la mise en production internesbeta: testeurs invitéshotfix: piste de mise à jour d'urgence
Votre application TestFlight/Play de test interne peut rester active staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
Structure recommandée en pratique
1) Base de sortie native
Votre dernier binaire natif reste le même pour de nombreuses itérations 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 sur 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 le code proche de la production via le canal de mise en scène.
- 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 des 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 d'ID de production/mise en scène)
- Une chaîne de pipeline de construction native de base
- La cartographie du canal est documentée (
staging,beta,production,hotfix) - La voie de promotion est appliquée dans CI/CD
- Reconstruction native uniquement sur les vraies modifications natives
- La mise en œuvre de reversion est testée 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 « staging app » fictive),
- Votre chemin de TestFlight reste stable,
- Votre équipe évite le « debt d'ID d'app » « deux app »,
- Vous pouvez faire passer rapidement de nombreuses corrections JS uniquement à travers Capgo .
Le résultat final est une gouvernance plus simple : moins d'artefacts, des télémétries plus propres et moins de surprises dans les opérations de mise en production.
Continuez à partir de Capgo Pratiques de l'environnement de développement : Étape de mise en scène avec un ID d'application mobile unique
Si vous utilisez Capgo Pratiques de l'environnement de développement : Étape de mise en scène avec un ID d'application mobile unique pour planifier la routage de canal et la mise en scène de lancement, connectez-le à Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Canaux pour les détails d'implémentation dans Canaux, Solution de test bêta pour le flux de travail du produit dans Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans la Solution de ciblage de version.