Ecco tre approcci comuni per ambienti mobili:
- Due ID applicazioni (produzione + pre-produzione)
- Un ID applicazione + switching dinamico dell'ambiente runtime
- Un ID applicazione + canali Capgo
I primi due possono funzionare, ma creano frizione a lungo termine. In reali team, 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 mappatura delle autorizzazioni
- Due identità di analisi e crash
- Configurazioni divergenti 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-switching è spesso disordinata
Il modello “un ID app + runtime switch” di solito significa che l'app legge le variabili di ambiente o le bandiere al avvio e reindirizza dinamicamente le API, le chiavi e il comportamento di aggiornamento.
Funziona fino a quando:
- La QA inizia a bypassare i flussi previsti perché lo stato di configurazione è datato
- Qualcuno utilizza l'endpoint sbagliato in produzione
- L'arretramento dell'ambiente causa bug difficili da riprodurre
- È necessario debug “qual è la versione di configurazione utilizzata da questo binario?” su un dispositivo utente
Quella complessità cresce con ogni rilascio e è dove le squadre perdono velocità
La Capgo maniera: un ID app, molti canali
Capgo rende il controllo dell'ambiente esplicito attraverso canali:
- Conserva un ID di applicazione di produzione in App Store / Play.
- Consegna un binario nativo unico per la “shell” (fino a quando le modifiche native richiedono una vera ricostruzione).
- Configura il comportamento di routing per canale, non per l'identità duplicata dell'applicazione.
In pratica, ciò significa:
production: tutti gli utentistaging: QA interna e candidati per la releasebeta: tester invitatihotfix: traccia di patch di emergenza
La tua applicazione di testing interno di TestFlight/Play può rimanere su "forever.
Puoi aggiornare ripetutamente JS/CSS/asset lì attraverso __CAPGO_KEEP_0__ senza pubblicare una nuova applicazione nativa. staging forever.
You do JS/CSS/asset updates there repeatedly through Capgo without publishing a new native app.
1) Baseline di rilascio nativo
2) Applicazione di testing interno con TestFlight/Play
Il tuo ultimo binario nativo rimane lo stesso per molte iterazioni di JS:
bun run build
bunx cap sync
# generate Xcode/Android Studio archives as usual
Riavrai il binario nativo 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”
Nelle workflow iOS, ciò significa che il tuo build di TestFlight può rimanere associato agli aggiornamenti pre-produzione:
- Nessuna sottoscrizione nativa frequente per ogni cambiamento di JS.
- L'utente QA valuta sempre il code vicino alla produzione via il canale di staging.
- Gli utenti di produzione ricevono solo i bundle del canale di produzione promosso.
4) Utilizza il passaggio di canale solo per flussi di lavoro controllati
Per team avanzati, esporre 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 dei team utilizza assegnamenti di canale dal pannello di controllo e cambia solo il canale per gli utenti interni, non tutti i clienti.
Checklist operativa
- Un solo ID dell'applicazione (nessun ID di produzione/di staging duplicato)
- Un solo pipeline di costruzione nativa di base
- La mappatura del canale documentata (
staging,beta,production,hotfix) - La procedura di promozione è impostata in CI/CD
- Ri-costruzione nativa solo per modifiche native vere
- La rollback è testata regolarmente
Beneficio pratico
Questa approccio elimina la deriva di ambiente, riduce la churn di costruzione e accelera le correzioni:
- I QA ricevono binari realistici (nessuna identità di “applicazione di staging” finta),
- La tua path di TestFlight rimane stabile,
- il tuo team evita il 'debito di ID app',
- puoi inviare molte correzioni JS-only 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 solo ID App Mobile
Se stai utilizzando Capgo Environment Best Practices: Staging con un solo ID 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 flusso di lavoro del prodotto in Soluzione di testing beta, e Soluzione di targeting versione per il flusso di lavoro del prodotto in Soluzione di targeting versione.