Teams wählen normalerweise eine von drei Ansätzen für mobile Umgebungen:
- Zwei App-IDs (Produktion + Vorkonfiguration)
- Eine App-ID + dynamische Umgebungswechsel
- Eine App-ID + Capgo-Kanäle
Die ersten beiden funktionieren zwar, aber sie erzeugen langfristige Reibung. In realen Teams ist das Capgo-Kanalmodell normalerweise das sauberste.
Weshalb duplizierte App-IDs lästig werden
Mit com.myapp und com.myapp.beta erscheint einfach, aber Sie bekommen schnell Duplikate:
- Zwei Releasepipelines
- Zwei Satze von Push-IDs, tiefen Links und Berechtigungszuordnungen
- Zwei Analytics- und Crash-Identitäten
- Konfigurationen, die sich auseinanderentwickeln und unkonstante Verhaltensweisen zwischen Umgebungen
Sie enden damit, zwei Produkte über Verkaufskonsolen, Teams und interne QA-Anweisungen zu verwalten.
Weshalb die Konfiguration bei Laufzeit oft verworren ist
Das 'eine App-ID + Laufzeit-Switch'-Muster bedeutet normalerweise, dass Ihre App Umgebungsvariablen oder Flags bei der Startzeit liest und APIs, Schlüssel und Updateverhalten dynamisch umleitet.
Das funktioniert, bis:
- Die QA-Abteilung umgeht die beabsichtigten Flüsse, weil die Konfigurationszustände veraltet sind,
- Jemand verwendet in der Produktion den falschen Endpunkt,
- Der Umfang der Umgebung führt zu schwer zu reproduzierenden Fehlern,
- Sie müssen auf einem Benutzergerät “Welche Konfigurationsversion verwendet dieser Binary?” aufschlüsseln.
Diese Komplexität wächst mit jedem Release und ist dort, wo sich Teams 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 eine native Binärdatei für die “Hülle” (bis native Änderungen eine wahre Rebuild 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
Dein TestFlight/Play-Internetesting-App kann auf staging forever.
Du aktualisierst JS/CSS/Asset-Updates dort wiederholt über Capgo ohne eine neue native App zu veröffentlichen.
Empfohlene Struktur in der Praxis
1) Native-Release-Baseline
Dein letzter native Binary bleibt gleich für viele JS-Iterationen:
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, Beheben von Problemen, dann promoten Sie:
bunx @capgo/cli promote vX.Y.Z --channel production
Wenn Sie eine explizite Versionsnummerierung 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 den Vorkommissionierungsaktualisierungen verbunden bleiben kann:
- Keine häufigen native Einreichungen für jede JS-Änderung.
- QA validiert immer nahe der Produktion code über den Staging-Kanal.
- Produktionsbenutzer erhalten nur die von der Produktion kanalisierten Pakete.
4) Verwenden Sie die 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 nur den Kanal für interne Benutzer, nicht für alle Kunden.
Betriebscheckliste
- Eine App-ID nur (keine Duplikate von Produktions- und Staging-IDs)
- Ein Baseline- native Build-Pipeline
- Kanalzuordnung dokumentiert (
staging,beta,production,hotfix) - Die Promotion-Pfad wird in CI/CD durchgesetzt
- Native rebuild nur bei echten native Änderungen
- Rückgängigmachung wird regelmäßig getestet
Praktische Vorteile
Dieser Ansatz entfernt Umgebungsdrift, reduziert Build-Churn und beschleunigt Reparaturen:
- Die QA erhält realistische Binärdateien (keine fiktiven „Staging-App“-Identitäten)
- Dein TestFlight-Pfad 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.
Fortsetzung von Capgo Umgebungsbest Practices: Staging mit einem Mobile App ID
Wenn Sie __CAPGO_KEEP_0__ Umgebungsbest Practices: Staging mit einem Mobile App ID Capgo Environment Best Practices: Staging with One Mobile App ID Kanäle Kanäle Kanäle Kanäle Kanäle Testlösung um das Produktworkflow in Testlösung und Beta Testlösung und Versionziel-Lösung zur Produktworkflow in Versionziel-Lösung.