Les équipes choisissent généralement l'une des trois approches pour les environnements mobiles :
- Deux identifiants d'application (production + pré-production)
- Un identifiant d'application + un environnement de runtime dynamique
- Un identifiant d'application + des canaux Capgo
Les deux premières peuvent fonctionner, mais elles 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 identifiants d'application dupliqués deviennent bruyants
En utilisant com.myapp et com.myapp.beta semble simple, mais vous obtenez rapidement des doublons :
- Deux flux de publication
- Deux ensembles d'IDs de push, de liens profonds et de mappage d'entitlement
- Deux identités d'analytique et de crash
- Divergences de configuration et comportements incohérents entre environnements
Vous finissez par gérer deux produits à travers les consoles de magasin, les équipes et les instructions de test interne.
Pourquoi la mise en œuvre de la configuration en temps de exécution est souvent chaotique
Le modèle « un 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.
Cela fonctionne jusqu'à ce que :
- Les équipes de test commencent à 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 seule ID d'application de production sur l'App Store / Play.
- Envoyez une seule version native du « shell » (jusqu'à ce que des modifications 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 :
productionTous les utilisateursstagingQA interne et candidats à la mise en productionbetaTesteurs invitéshotfixVoie de mise à jour d'urgence
Votre application de test interne TestFlight/Play peut rester éternellement. staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
Structure recommandée en pratique
1) Ligne de base de la mise en production native
Votre dernière version binaire native reste la 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 la version binaire native que lorsque vous avez effectivement changé la surface native.
2) Utilisez des canaux dédiés pour les environnements
Publiez des mises à jour avec les 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 versionnement 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 de JS.
- QA always validates near-production code via the staging channel.
- Les utilisateurs de production ne reçoivent que les canaux de production promus.
4) Utilisez uniquement le changement de canal pour des workflows contrôlés
Pour les équipes avancées, exposez les commutateurs de canaux contrôlés pour les utilisateurs QA/admin :
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Ce n'est pas obligatoire. La plupart des équipes utilisent les affectations de canaux 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 duplicats ID de production/ID de pré-production)
- Un 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 à l'ancienne est testée régulièrement
Avantage pratique
Cette approche supprime la dérive des environnements, réduit la rotation des constructions et accélère les correctifs :
- 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'applications »,
- Vous pouvez appliquer de nombreuses corrections JavaScript uniquement à travers Capgo rapidement.
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 à partir de Capgo Pratiques d'environnement pour les meilleures pratiques de mise en scène avec un seul ID d'appareil mobile.
Si vous utilisez Capgo Pratiques d'environnement pour les meilleures pratiques de mise en scène avec un seul ID d'appareil mobile. pour planifier la mise en route des canaux et la mise en scène étalée, connectez-l’avec Canaux context : Nom de la fonctionnalité de canaux de mise en production de Capgo. Page/zone : Page de marketing de solutions de Capgo. Rôle : Étiquette de navigation ou élément de navigation court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans Canaux, Canaux : Canaux : Nom de la fonctionnalité de canaux de mise en production de Capgo. Page/zone : Page de marketing de solutions de Capgo. Rôle : Étiquette de navigation ou élément de navigation court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). 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 Solution de ciblage de version.