Teams wählen in der Regel eine von drei Ansätzen für mobile Umgebungen:
- Zwei App-IDs (Produktion + Vorproduktion)
- Eine App-ID + dynamische Umgebungswechsel
- Eine App-ID + Capgo-Kanäle
Die ersten beiden können funktionieren, aber sie erzeugen langfristige Reibungsverluste. In realen Teams ist das Capgo-Kanalmodell in der Regel das sauberste.
Weshalb duplizierte App-IDs lästig werden
Verwendung von com.myapp und com.myapp.beta erscheint einfach, aber Sie erhalten schnell Duplikate:
- Zwei Releasepipelines
- Zwei Satze von Push-IDs, Deep-Links und Berechtigungszuordnungen
- Zwei Analytics- und Crash-Identitäten
- Divergente Konfiguration und inkonsistente Verhaltensweise zwischen Umgebungen
Sie enden damit, zwei Produkte über Geschäftsconsoles, Teams und interne QA-Anweisungen zu verwalten.
Weshalb die Konfiguration bei Laufzeit-Umstellungen oft verworren ist
Das Muster „eine App-ID + Laufzeit-Umstellung“ bedeutet normalerweise, dass Ihre App Umgebungsvariablen oder Flags bei der Startzeit liest und APIs, Schlüssel und Aktualisierungsverhalten dynamisch umleitet.
Dies funktioniert, bis:
- Die QA-Abteilung umgeht die beabsichtigten Flüsse, weil die Konfigurationszustände veraltet sind.
- Jemand verwendet den falschen Endpunkt in der Produktion.
- Umweltverschiebungen verursachen schwierig zu reproduzierende Fehler.
- Sie müssen auf einem Benutzergerät „welche Konfigurationsversion verwendet dieser Binary?“ debuggen.
Diese Komplexität wächst mit jedem Release und ist dort, wo Teams an Geschwindigkeit verlieren.
Die Capgo-Methode: Eine App-ID, viele Kanäle
Capgo macht die Umgebungssteuerung explizit über 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 Kanal, nicht durch duplizierte App-Identität.
In der Praxis bedeutet dies:
production: Alle Benutzerstaging: interne QA und Release-Kandidatenbeta: eingeladene Testerhotfix: Notfall-Patch-Track
Ihr TestFlight/Play-internal-Test-App kann auf staging forever.
Sie können 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
Ihr letztes natives Binärprogramm bleibt gleich für viele JS-Iterations:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Sie bauen nur das native Binärprogramm neu, wenn Sie tatsächlich das 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 Sie auf QA, beheben Sie Probleme, dann promoten Sie:
bunx @capgo/cli promote vX.Y.Z --channel production
Wenn Sie 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 Ihr TestFlight-Build mit pre-produktiven Updates verbunden bleiben kann:
- Keine häufigen native Einreichungen für jede JS-Änderung.
- QA validiert immer nahe an der Produktion code über den Staging-Kanal.
- Produktionsbenutzer erhalten nur die von der Produktion kanalisierten Pakete.
4) Verwenden Sie Kanalwechsel nur für kontrollierte Workflows
Für fortgeschrittene Teams: Expose 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 aus der Dashboard und wechseln nur den Kanal für interne Benutzer, nicht alle Kunden.
Betriebscheckliste
- Ein App-ID nur (keine Duplikate von Produktions-/Staging-IDs)
- Ein Basisnative Build-Pipeline
- Kanalzuweisungen dokumentiert (
staging,beta,production,hotfix) - Promotion Path wird in CI/CD durchgesetzt
- Native rebuild nur bei echten native Änderungen
- Rollback wird regelmäßig getestet
Praktischer Nutzen
Diese Vorgehensweise entfernt Umgebungsdrift, reduziert Build-Churn und beschleunigt Fixes:
- QA erhält realistische Binaries (keine fiktiven „Staging-App“-Identität)
- Ihr TestFlight-Pfad bleibt stabil,
- Ihr Team vermeidet das "Zwei-App-ID-Debt",
- Sie können viele JS-only-Fixes über Capgo schnell durchführen.
Das Ergebnis ist eine einfachere Governance: weniger Artefakte, saubere Telemetrie und weniger Überraschungen in der Release-Operation.
Bleiben Sie bei Capgo Environment Best Practices: Staging mit einer mobilen App-ID
Wenn Sie "__CAPGO_KEEP_0__ Environment Best Practices: Staging mit einer mobilen App-ID" verwenden Capgo Environment Best Practices: Staging with One Mobile App ID Channels für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, __CAPGO_KEEP_0__ Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Version-Zielsystem für den Produktworkflow in Version-Zielsystem.