Le squadre di sviluppo scelgono spesso uno dei tre approcci per gli ambienti mobili:
- Due ID applicazioni (produzione + pre-produzione)
- Un ID applicazione + il switching dinamico dell'ambiente runtime
- Un ID applicazione + i canali Capgo
I primi due possono funzionare, ma creano una frizione a lungo termine. In reali squadre, il modello dei canali Capgo è solitamente il più pulito.
Perché gli ID applicazioni 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 mapping delle autorizzazioni
- Due identità di analisi e crash
- Differenze di configurazione e comportamenti non coerenti tra ambienti
Si finisce per gestire due prodotti attraverso console di negozio, team e istruzioni QA interne.
Perché la configurazione di runtime è spesso confusa
Il modello "un ID app + switch runtime" di solito significa che l'app legge le variabili di ambiente o le bandiere al avvio e reindirizza le API, le chiavi e il comportamento di aggiornamento dinamicamente.
Funziona fino a quando:
- La QA inizia a bypassare i flussi previsti perché lo stato di configurazione è obsoleto
- Qualcuno utilizza l'endpoint sbagliato in produzione
- L'ambiente si allontana e causa bug difficili da riprodurre
- È necessario debuggare "qual è la versione di configurazione utilizzata da questo binario?" su un dispositivo del cliente
Quella complessità cresce con ogni rilascio e è dove le squadre perdono velocità
La soluzione Capgo : un ID app, molti canali
Capgo rende il controllo dell'ambiente esplicito attraverso i canali:
- Conserva un ID di app di produzione unico su App Store / Play.
- Invia un binario nativo unico per il “shell” (fino a quando le modifiche native richiedono una vera ricostruzione).
- Configura il comportamento per canale, non per l'identità duplicata dell'app.
In pratica, ciò significa:
production: tutti gli utentistaging: QA interna e candidati alla releasebeta: tester invitatihotfix: traccia di patch di emergenza
La tua app di testing interno su TestFlight/Play può rimanere staging per sempre.
Esegui aggiornamenti JS/CSS/asset lì ripetutamente attraverso Capgo senza pubblicare una nuova app nativa.
Struttura raccomandata in pratica
1) Baseline di rilascio nativo
La tua ultima versione binaria nativa rimane la stessa per molte iterazioni di JS:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Riavrai la versione binaria nativa solo quando effettivamente hai modificato la superficie nativa.
2) Utilizza canali dedicati per gli ambienti
Pubblica aggiornamenti con canali:
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 una 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 di lavoro iOS, ciò significa che la tua versione di TestFlight può rimanere associata ad aggiornamenti pre-produzione:
- Non sottoscrivi spesso le versioni native per ogni cambiamento di JS.
- La QA valuta sempre il prodotto vicino alla produzione code tramite il canale di staging.
- Gli utenti di produzione ricevono solo i pacchetti di canale di produzione promossi.
4) Utilizza il cambio di canale solo per flussi di lavoro controllati
Per team avanzati, esporre i commutatori di canale controllati per gli utenti QA/admin:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setChannel({
channel: 'staging',
triggerAutoUpdate: true
});
Questo è facoltativo. La maggior parte delle squadre utilizza l'assegnazione dei canali dal pannello di controllo e cambia solo il canale per gli utenti interni, non per tutti i clienti.
Elenco di controllo operativo
- Un solo ID dell'applicazione (nessun ID di produzione/di staging duplicato)
- Un solo pipeline di costruzione nativa di base
- La mappatura dei canali documentata (
staging,beta,production,hotfix) - La via di promozione impostata nel CI/CD
- Riavvio nativo solo per modifiche native vere
- La rotazione di rollback testata regolarmente
Beneficio pratico
Questa approccio elimina la deriva di ambiente, riduce la commistione di costruzione e accelera le correzioni:
- La QA riceve binari realistici (nessuna identità di app “di staging” finta),
- La tua strada di TestFlight rimane stabile,
- il tuo team evita il 'debito di ID app',
- puoi inviare molte correzioni JavaScript solo 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 Environment Best Practices: Staging con un unico ID app mobile
Se stai utilizzando Capgo Environment Best Practices: Staging con un unico ID app mobile per pianificare la routing dei canali e la distribuzione in fase di staging, connettilo con Canali context per i dettagli di implementazione in Canali, Canali Canali per i dettagli di implementazione in Canali, Soluzione di Test di Beta per il flusso di lavoro del prodotto in Soluzione di Test di Beta, e Soluzione di Targeting della Versione per il flusso di lavoro del prodotto in Soluzione di Targeting della Versione.