Teams wählen normalerweise eine von drei Ansätzen für mobile Umgebungen:
- Zwei App-IDs (Produktion + Vorkonfiguration)
- Ein App-Id + dynamische Laufzeitumgebungsswitching
- Ein 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 erscheint einfach, aber man bekommt schnell Duplikate:
- Zwei Releasepipelines
- Zwei Sätze von Push-IDs, tiefen Links und Berechtigungszuordnungen
- Zwei Analytics- und Crash-Identitäten
- Konfigurationen divergieren und das Verhalten zwischen Umgebungen ist inkonsistent
Man muss zwei Produkte über Store-Konsolen, Teams und interne QA-Anweisungen verwalten.
Weshalb die Konfiguration bei Laufzeit oft verworren ist
Das Muster 'eine App-ID + Laufzeit-Switch' bedeutet normalerweise, dass die App bei Start-Up Umgebungsvariablen oder Flags liest und APIs, Schlüssel und Updateverhalten dynamisch umleitet.
Dies funktioniert, bis:
- Die QA-Abteilung umgeht die beabsichtigten Flows, weil die Konfigurationszustände veraltet sind
- Jemand verwendet den falschen Endpunkt in der Produktion
- Umweltverschiebungen verursachen schwierig zu reproduzierende Bugs
- Sie müssen auf einem Gerät des Benutzers den Fehler “was ist die Konfigurationsversion dieser Binärdatei?” beheben.
Diese Komplexität wächst mit jeder Veröffentlichung 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:
- Behalten Sie eine Produktions-App-ID in App Store / Play bei.
- Verschicken Sie eine native Binärdatei für die “Shell” (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:
productionalle Benutzerstaginginternes QA und Release-Kandidatenbetaeingeladene TesterhotfixNotfall-Patch-Track
Ihr TestFlight/Play-Internentest-App bleibt für immer bestehen.
Sie können JS/CSS/Asset-Updates dort wiederholt durch __CAPGO_KEEP_0__ durchführen, ohne eine neue native App zu veröffentlichen. staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
1) Native-Release-Basis
Ihr letzter native Binary bleibt für viele JS-Iterationen gleich:
Sie bauen nur den native Binary neu, wenn Sie tatsächlich den native Oberflächenbereich geändert haben.
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
2) Verwenden Sie dedizierte Kanäle für Umgebungen
Veröffentlichen Sie Updates mit Kanälen:
Testen Sie auf QA, beheben Sie Probleme, dann promoten Sie:
bun run build
bunx @capgo/cli deploy --channel staging
Wenn Sie explizite Versionsnummern bevorzugen:
bunx @capgo/cli promote vX.Y.Z --channel production
3) Halten Sie TestFlight 'immer pre-prod'
bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production
In iOS-Workflows bedeutet dies, dass Ihre TestFlight-Build mit pre-produktiven Updates verbunden bleiben kann:
In iOS workflows, this means your TestFlight build can stay associated with pre-production updates:
- No häufige native Einreichungen für jede JS-Änderung.
- Die QA-Abteilung validiert immer wieder die nahezu Produktions-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 aus der Dashboard und wechseln nur den Kanal für interne Benutzer, nicht für alle Kunden.
Betriebscheckliste
- Eine App-ID nur (keine Duplikate von Produktions-/Staging-IDs)
- Eine Basisnative Build Pipeline
- Kanalzuweisungen dokumentiert (
staging,beta,production,hotfix) - Die Promotion-Route wird in CI/CD erzwungen
- Native rebuild nur bei echten native Änderungen
- Regelmäßig getesteter Rollback
Praktischer Nutzen
Diese Vorgehensweise entfernt Umgebungsdrift, reduziert die Build-Churn und beschleunigt die Fixes:
- Die QA erhält realistische Binärcode (kein fiktiver „Staging-App“-Identität),
- Ihr TestFlight-Weg bleibt stabil,
- Ihr Team vermeidet das „zwei App-ID-Debt“,
- Sie können viele JS-nur-Fixes durch Capgo schnell durchführen.
Das Ergebnis ist eine einfache Governance: weniger Artefakte, saubere Telemetrie und weniger Überraschungen in der Release-Operation.
Fortsetzen Sie von Capgo Umgebungsbest Practices: Staging mit einer mobilen App-ID
Wenn Sie Capgo Umgebungsbest Practices: Staging mit einer mobilen App-ID zum Planen der Kanalroutung und der gestuften Veröffentlichung verwenden, 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 den Produktworkflow in Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in Versionziel-Lösung.