Teams wählen normalerweise eine von drei Ansätzen für mobile Umgebungen:
- Zwei App-IDs (Produktion + Voreinstellung)
- 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.
Warum duplizierte App-IDs lästig werden
Mit com.myapp und com.myapp.beta scheint einfach, aber man bekommt schnell Duplikate:
- Zwei Releasepipelines
- Zwei Sätze von Push-IDs, tiefen Links und Berechtigungszuordnungen
- Zwei Analytics- und Crash-Identitäten
- Divergierende Konfiguration und inkonsistente Verhaltensweise zwischen Umgebungen
Man muss zwei Produkte über Store-Konsolen, Teams und interne QA-Anweisungen verwalten.
Warum die Konfiguration bei Laufzeit oft unordentlich ist
Das 'eine App-ID + Laufzeit-Wechsel' -Muster bedeutet normalerweise, dass die App Umgebungsvariablen oder Flags bei der Startzeit liest und APIs, Schlüssel und Aktualisierungsverhalten dynamisch umleitet.
This funktioniert, bis:
- Die QA-Tests umgehen die beabsichtigten Flüsse, weil die Konfigurationszustände veraltet sind,
- Jemand verwendet in der Produktion den falschen Endpunkt,
- Der Umgebungsdrift verursacht schwierig zu reproduzierende Fehler,
- Sie müssen auf einem Benutzergerät “Welche Konfigurationsversion verwendet dieses Binär?” debuggen.
Diese Komplexität wächst mit jedem Release und ist dort, wo sich Teams in der Geschwindigkeit verlangsamen.
Die Capgo Methode: Eine App-ID, viele Kanäle
Capgo macht die Umgebungssteuerung explizit durch Kanäle:
- Halten Sie eine Produktions-App-ID in App Store / Play.
- Versenden Sie ein natives Binär für die “Hülle” (bis native Änderungen eine wahre Rebuild erfordern).
- Routen Sie das Verhalten durch Kanäle, nicht durch duplizierte App-Identität.
In der Praxis bedeutet dies:
production: alle Benutzerstaging: interne QA und Release-Kandidatenbeta: eingeladene Testerhotfix: Notfall-Patch-Track
Dein TestFlight/Play-internal-Test-App kann auf staging forever.
Du kannst JS/CSS/Asset-Updates dort wiederholt durch Capgo durchführen, ohne eine neue native App zu veröffentlichen.
Empfohlene Struktur in der Praxis
1) Native-Release-Baseline
Dein letzter native Binary bleibt für viele JS-Iterations gleich:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Du baust nur das native Binary neu, wenn du tatsächlich den native Oberflächenbereich geändert hast.
2) Verwende dedizierte Kanäle für Umgebungen
Veröffentliche Updates mit Kanälen:
bun run build
bunx @capgo/cli deploy --channel staging
Testen Sie auf QA, Probleme beheben, dann promoten:
bunx @capgo/cli promote vX.Y.Z --channel production
Wenn Sie eine explizite Versionsverwaltung 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-Version immer mit den Vorkomponenten verbunden bleiben kann:
- Keine häufigen native Submissionen für jede JS-Änderung.
- QA validiert immer nahe an der Produktion code über den Staging-Kanal.
- Produktionsnutzer erhalten nur die promoteten Produktionskanal-Pakete.
4) Verwenden Sie nur Channel-Switching für kontrollierte Workflows
Für fortgeschrittene Teams: Exponieren Sie kontrollierte Channel-Switches 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 Channel-Zuweisungen aus der Dashboard und wechseln nur den Channel für interne Benutzer, nicht für alle Kunden.
Betriebscheckliste
- Einziges App-ID (keine Duplikate für Produktions- und Staging-IDs)
- Eine Basisnative-Build-Pipeline
- Kanalzuordnung dokumentiert (
staging,beta,production,hotfix) - Die Werbeverfolgung wird in CI/CD durchgesetzt
- Erneutes Native-Bauen nur bei echten Native-Änderungen
- Regelmäßige Überprüfung von Rollover
Praktische Vorteile
Diese Vorgehensweise entfernt Umgebungsdrift, reduziert Build-Churn und beschleunigt Reparaturen:
- Die QA erhält realistische Binärdateien (keine fiktiven „Staging-App“-Identitäten)
- Dein TestFlight-Weg bleibt stabil
- Dein Team vermeidet das „Zwei-App-ID-Debt“
- Du kannst viele JS-nur-Fixes schnell über Capgo durchführen.
Das Ergebnis ist eine einfache Governance: weniger Artefakte, saubere Telemetrie und weniger Überraschungen in der Release-Operation.
Bleiben Sie bei Capgo Umgebungsbest Practices: Staging mit einem Mobilgeräte-App-ID
Wenn Sie " + __CAPGO_KEEP_0__ Umgebungsbest Practices: Staging mit einem Mobilgeräte-App-ID " verwenden Bleiben Sie bei Capgo Umgebungsbest Practices: Staging mit einem Mobilgeräte-App-ID um Kanalrouting und rollende Staging zu planen, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für das Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.