Teams wählen normalerweise eine von drei Ansätzen für mobile Umgebungen:
- Zwei App-IDs (Produktion + Vorproduktion)
- Eine App-ID + dynamische Laufzeitumgebungsswitching
- Eine App-ID + Capgo Kanäle
Die ersten beiden können funktionieren, aber sie erzeugen langfristige Reibung. In realen Teams ist das Capgo Kanalmodell normalerweise das sauberste.
Werden duplizierte App-IDs lästig
Verwenden com.myapp und com.myapp.beta Seems einfach, aber Sie erhalten schnell Duplikate:
- Zwei Release-Pipelines
- Zwei Satz von Push-IDs, tiefen Links und Berechtigungszuordnungen
- Zwei Analytics- und Crash-Identitäten
- Konfigurationen, die sich unterscheiden und unvorhersehbares Verhalten zwischen Umgebungen
Sie müssen zwei Produkte über den Store-Konsolen, Teams und internen QA-Anweisungen verwalten.
Warum die Konfiguration bei Laufzeitwechseln oft verworren ist
Das Muster 'eine App-ID + Laufzeit-Switch' bedeutet, dass Ihre App Umgebungsvariablen oder Flags bei der Startzeit liest und APIs, Schlüssel und Update-Verhalten dynamisch umleitet.
Dies funktioniert, bis:
- Die QA-Abteilung umgeht die vorgesehenen Flüsse, weil die Konfigurationszustände veraltet sind
- Jemand verwendet den falschen Endpunkt in der Produktion
- Der Umgebungsdrift verursacht schwierig zu reproduzierende Fehler
- Sie müssen auf einem Benutzergerät 'welche Konfigurationsversion wird diese Binärdatei verwendet?' debuggen.
Die Komplexität wächst mit jeder Veröffentlichung und ist dort, wo Teams an Geschwindigkeit verlieren.
Die Capgo-Methode: eine App-ID, viele Kanäle
Capgo macht die Kontrolle der Umgebungen explizit durch Kanäle:
- Halten Sie eine Produktions-App-ID in App Store / Play.
- Versenden Sie eine native Binärdatei für die „Shell“ (bis native Änderungen eine wahre Rekonstruktion erfordern).
- Routen Sie das Verhalten durch Kanäle, nicht durch duplizierte App-Identitäten.
In der Praxis bedeutet dies:
production: Alle Benutzerstaging: interne QA und Release-Kandidatenbeta: eingeladene Testerhotfix: Notfall-Patch-Track
Ihr TestFlight/Play-App für interne Tests kann weiterhin auf staging ewig.
Sie führen JS/CSS/Asset-Updates dort wiederholt durch Capgo ohne eine neue native App zu veröffentlichen.
Empfohlene Struktur in der Praxis
1) Basis für native Veröffentlichung
Ihr letzter native Binärstays bleibt gleich für viele JS-Iterationen:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Sie bauen nur die native Binärdatei neu, wenn Sie tatsächlich den native Oberflächenbereich geändert haben.
2) Verwenden Sie dedizierte Kanäle für Umgebungen
Veröffentlichen Sie Updates mit Kanälen:
bun run build
bunx @capgo/cli deploy --channel staging
Testen auf QA, Probleme beheben, dann promotieren:
bunx @capgo/cli promote vX.Y.Z --channel production
Wenn Sie explizite Versionsnummern bevorzugen:
bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production
3) Halten Sie TestFlight 'immer pre-prod'
In iOS-Workflows bedeutet dies, dass Ihre TestFlight-Build mit pre-prod-Updates verbunden bleiben kann:
- Keine häufigen native Submissionen für jede JS-Änderung.
- QA überprüft immer nahe am Produktionsumfeld code über den Staging-Kanal.
- Produktionsnutzer erhalten nur die in der Produktionskanal aufgeführten Pakete.
4) Verwenden Sie den Kanalwechsel nur für kontrollierte Workflows.
Für fortgeschrittene Teams: Exponieren Sie kontrollierte Kanalwechsel für QA-/Admin-Benutzer:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Dies ist optional. Die meisten Teams verwenden Kanalzuweisungen vom Dashboard und wechseln den Kanal nur für interne Benutzer, nicht für alle Kunden.
Betriebscheckliste
- Eine App-ID pro Anwendung (keine Duplikate von Produktions- und Staging-IDs)
- Eine Basisnative Build-Pipeline
- Kanalzuweisungen dokumentiert (
staging,beta,production,hotfix) - Die Promotion-Route wird in CI/CD durchgesetzt
- Erneuerung der Native-Builds nur bei echten Native-Änderungen
- Regelmäßige Rückgängigmachung getestet
Praktische Vorteile
Dieser Ansatz entfernt den Umgebungsdrift, reduziert die Build-Churn und beschleunigt die Fixes:
- Die QA erhält realistische Binärdateien (keine fiktiven "Staging-App"-Identitäten)
- Dein TestFlight-Path bleibt stabil
- Dein Team vermeidet "Zwei-App-ID-Schulden"
- Du kannst viele JS-nur-Fixes durch Capgo schnell durchführen
Das Ergebnis ist eine einfachere Governance: weniger Artefakte, saubere Telemetrie und weniger Überraschungen in der Release-Operation
Gehe weiter von Capgo Umgebungsbest Practices: Staging mit einem mobilen App-ID
Wenn Sie Capgo verwenden Capgo Umgebungshandbuch: Staging mit einem Mobile App ID um Planung der Kanalroutings und der rollierenden Stufenauslieferung zu verbinden Channels für die Implementierungsdetails in den Kanälen Kanäle für die Implementierungsdetails in den Kanälen Kanäle für die Implementierungsdetails in den Kanälen Beta-Testlösung für das Produktworkflow in der Beta-Testlösung und Version Targeting Solution für das Produktworkflow in der Versionziel-Lösung