Le squadre scelgono spesso uno dei tre approcci per gli ambienti mobili:
- Due ID app (produzione + pre-produzione)
- Un ID app + switching dell'ambiente runtime dinamico
- Un ID app + Capgo canali
The prime due possono funzionare, ma creano frizione a lungo termine. In reali team, il modello del canale Capgo è solitamente il più pulito.
Perché gli ID delle app duplicati diventano rumorosi
Usando com.myapp e com.myapp.beta sembra semplice, ma si ottiene rapidamente la duplicazione:
- Due pipeline di rilascio
- Due set di ID di push, collegamenti profondi e mappatura delle autorizzazioni
- Due identità di analytics e crash
- Configurazione divergente e comportamento inconsistente tra ambienti
Si finisce per gestire due prodotti attraverso console delle store, team e istruzioni QA interne.
Perché la configurazione di runtime-switching è spesso disordinata
Il modello 'un ID di app + switch di runtime' solitamente significa che l'app legge le variabili di ambiente o le bandiere al avvio e reindirizza le API, le chiavi e il comportamento dell'aggiornamento dinamicamente.
Funziona fino a:
- I test di QA iniziano a bypassare i flussi previsti perché lo stato di configurazione è datato,
- qualcuno utilizza l'endpoint sbagliato in produzione,
- la deriva dell'ambiente causa bug difficili da riprodurre,
- hai bisogno di debuggare “qual è la versione di configurazione utilizzata da questo binario?” su un dispositivo del cliente.
Questa complessità cresce con ogni rilascio e è dove le squadre perdono velocità.
The Capgo way: one app ID, many channels
Capgo makes environment control explicit through channels:
- Mantieni un unico ID applicazione in App Store / Play.
- Invia un binario nativo unico per la “shell” (fino a quando le modifiche native richiedono un vero rebuild).
- Routa il comportamento per canale, non per l'identità duplicata dell'applicazione.
In pratica, ciò significa:
production: tutti gli utentistaging: QA interna e candidati di rilasciobeta: tester invitatihotfix: track di patch di emergenza
La tua app di testing interno TestFlight/Play può rimanere sempre attiva.
Puoi aggiornare ripetutamente JS/CSS/asset lì senza pubblicare una nuova app nativa. staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
1) Baseline di rilascio nativo
La tua ultima versione binaria nativa rimane la stessa per molte iterazioni di JS:
Riavrai la versione binaria nativa solo quando effettivamente hai modificato la superficie nativa.
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
2) Utilizza canali dedicati per gli ambienti
Pubblica gli aggiornamenti con canali:
__CAPGO_KEEP_0__
bun run build
bunx @capgo/cli deploy --channel staging
Testa su QA, risolvi gli issue, poi promuovi:
bunx @capgo/cli promote vX.Y.Z --channel production
Se preferisci la versioning esplicito:
bunx @capgo/cli deploy vX.Y.Z --channel staging
bunx @capgo/cli promote vX.Y.Z --channel production
3) Mantieni TestFlight “sempre pre-prod”
In flussi iOS, ciò significa che il tuo build di TestFlight può rimanere associato ad aggiornamenti pre-produzione:
- Nessuna sottoscrizione nativa frequente per ogni cambiamento JS.
- La QA sempre valuta vicino alla produzione code tramite il canale di staging.
- Gli utenti di produzione ricevono solo bundle del canale di produzione promosso.
4) Utilizza solo le scelte di canale per flussi di lavoro controllati
Per team avanzati, esponi scelte di canale controllate per utenti QA/admin:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Ciò è facoltativo. La maggior parte dei team utilizza assegnazioni di canale dal pannello di controllo e cambia solo il canale per utenti interni, non per tutti i clienti.
Checklist operativa
- Solo un ID dell'app (nessun ID di produzione/di staging duplicato)
- Una pipeline di costruzione nativa di base
- La mappatura del canale documentata (
staging,beta,production,hotfix) - La via di promozione impostata in CI/CD
- Ri-costruzione nativa solo per modifiche native vere
- Il rollback testato regolarmente
Beneficio pratico
Questa approccio elimina la deriva dell'ambiente, riduce la churn di costruzione e accelera le correzioni:
- La QA riceve binari realistici (nessuna identità di app finta “di staging”),
- Il tuo percorso di TestFlight rimane stabile,
- Il tuo team evita il “debito di due ID di app,”
- Puoi inviare molte correzioni solo in JavaScript attraverso Capgo velocemente.
Il risultato finale è una governance più semplice: meno artefatti, telemetria più pulita e meno sorprese nelle operazioni di rilascio.
Continua da Capgo Pratiche per l'ambiente di sviluppo: Staging con un unico ID di App Mobile
Se stai utilizzando Capgo Pratiche per l'ambiente di sviluppo: Staging con un unico ID di App Mobile per pianificare la routing dei canali e la distribuzione in fase di staging, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Soluzione di testing beta per il workflow del prodotto in Soluzione di testing beta, e Soluzione di Targeting della Versione per il flusso di lavoro del prodotto in Soluzione di Targeting della Versione.