Salta al contenuto principale

Come usare il Semantic Versioning con gli Capgo OTA Updates

Scopri come semplificare gli aggiornamenti e il versionamento delle app con Semantic Versioning e gli aggiornamenti OTA di Capgo per le app Capacitor.

Come usare Semantic Versioning con gli aggiornamenti OTA di Capgo Capgo: illustrazione del blog

Vuoi semplificare app più veloci e il controllo delle versioni? Versioning Semantico (SemVer) combinato con Capgogli aggiornamenti Over-The-Air (OTA) di Capacitor più facile e veloce. Ecco come:

  • Fondamenti del Semantic Versioning: Le versioni usano il formato MAJOR.MINOR.PATCH:

    • MAJOR: Per modifiche non retrocompatibili.
    • MINOR: Per nuove funzionalità retrocompatibili.
    • PATCH: Per le correzioni di bug.
  • Perché usare SemVer con Capgo?

    • Comunicazione chiara sugli update.
    • Gestione delle versioni più intelligente.
    • Evita conflitti di dipendenze.
    • Pianificazione delle release organizzata.
  • Setup di Capgo Passaggi:

    1. Installa il plugin updater di Capgo.
    2. Configura la versione della tua app in capacitor.config.json e in altri file.
    3. Inizializza con la tua chiave API.
    4. Usa Capgo CLI per bundle e upload degli aggiornamenti.
  • Gestisci versioni e canali:

    • Usa canali separati (es. “beta” per i test, “production” per le release stabili).
    • Controlla le policy di aggiornamento (patch auto-aggiornate, approvazione manuale per i cambiamenti maggiori).
    • Opzioni di rollback per gli aggiornamenti falliti.
  • Processo di deployment:

    • Aggiorna i numeri di versione seguendo le regole SemVer.
    • Testa accuratamente prima del deployment.
    • Usa i comandi CLI per upload e distribuzione degli aggiornamenti.

Capgo garantisce che gli aggiornamenti raggiungano gli utenti in modo rapido e affidabile, con strumenti per gestire interruzioni e mantenere la stabilità. Ideale per team che usano workflow CI/CD per automatizzare gli aggiornamenti.

Consiglio rapido: Testa sempre gli aggiornamenti e usa i canali per gestire i rollout graduali in modo efficace.

Semantic Versioning | Sali di livello

Capgo Setup Guide

Capgo Live Update Interfaccia Dashboard

Ecco come configurare Capgo per gestire gli aggiornamenti OTA e il versioning con facilità.

Passaggi per la configurazione iniziale

Inizia installando il plugin updater di Capgo:

npm install @capgo/capacitor-updater  
npx cap sync

Assicurati che la tua capacitor.config.json il file usa un formato di versione semantica:

{ 
  "appId": "com.example.app", 
  "appName": "My App", 
  "version": "1.0.0" 
}

Per i progetti più vecchi, aggiorna i dettagli della versione in queste posizioni:

  • package.json (look for the version campo)
  • android/app/build.gradle (aggiorna versionName)
  • ios/App/App.xcodeproj/project.pbxproj (aggiorna CURRENT_PROJECT_VERSION)

Una volta configurato, inizializza Capgo con la tua chiave API:

npx @capgo/cli@latest init YOUR_API_KEY

Tabella di riferimento rapido:

Setup Phase Azione chiave Passaggio di verifica
Installazione Installa il plugin e sincronizza Verifica package.json
Configurazione Imposta i numeri di versione Verifica in tutti i file
Inizializzazione Connetti con la chiave API Testa lo stato della connessione
Build Crea il bundle iniziale Conferma il successo dell'upload

Integrazione con il version control

Capgo funziona bene con le piattaforme CI/CD, rendendo aggiornamenti automatici semplice. Le piattaforme supportate includono:

Se stai lavorando in locale, puoi disabilitare gli auto-update aggiungendo questo alla tua configurazione:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

In questo modo Capgo non sovrascriverà le tue modifiche locali. Quando il setup è pronto, carica la tua prima versione:

npx @capgo/cli@latest bundle upload  
npx @capgo/cli@latest channel set production -s default

Infine, notifica al plugin nativo lo stato del bundle nel file principale della tua app:

import { CapacitorUpdater } from '@capgo/capacitor-updater';  
CapacitorUpdater.notifyAppReady();

Questa configurazione garantisce che la tua app sia pronta per deployment OTA e gestione delle versioni senza intoppi.

Usare il Semantic Versioning con Capgo

Gestione del numero di versione

Capgo usa Semantic Versioning (SemVer) per gestire le versioni dell'app, nel formato MAJOR.MINOR.PATCH. Ecco come funziona:

  • Versione Major (X.0.0): Aumenta il numero MAJOR per modifiche che rompono la compatibilità.
  • Versione Minor (1.X.0): Aumenta il numero MINOR per nuove funzionalità che restano compatibili.
  • Versione Patch (1.0.X): Aumenta il numero PATCH per correzioni di bug che non influenzano la compatibilità.
Tipo di versione Quando incrementare Comportamento di auto-aggiornamento
Major (X.0.0) Per modifiche breaking di API Richiede approvazione manuale
Minore (1.X.0) Per nuove funzionalità Configurabile in Capgo
Patch (1.0.X) Per correzioni di bug Di solito automatico

Seguendo le regole SemVer, puoi semplificare la gestione delle versioni e garantire aggiornamenti più fluidi tra i tuoi canali di deployment.

Linee guida per il Version Control

Capgo ti consente di gestire i deployment in modo efficace configurando canali distinti per le diverse fasi del tuo workflow.

  • Gestione delle versioni basata su canali: Organizza il processo di deployment creando canali separati per test e produzione. Ad esempio:

    • Usa un canale “beta” (es. 1.2.0-beta) per testare nuove funzionalità.
    • Mantieni un canale “production” (es. 1.2.0) per le release stabili.
    • Aggiungi canali specifici per piattaforma (es. “ios-hotfix” con versione 1.2.1) quando risolvi problemi specifici della piattaforma.
  • Configurazione della policy di aggiornamento: Controlla come vengono applicati gli aggiornamenti tramite le opzioni di configurazione di Capgo. Ad esempio:

    {
      "plugins": {
        "CapacitorUpdater": {
          "disableAutoUpdate": "minor"
        }
      }
    }

    Questa configurazione garantisce che gli utenti ricevano automaticamente gli aggiornamenti patch, mentre gli aggiornamenti minor e major richiedono l'approvazione manuale.

  • Strategia di rollback delle versioni: Usa identificatori pre-release per mantenere opzioni di rollback chiare. Questo approccio ti consente di tornare a una versione precedente se si verificano problemi, mantenendo la versioning coerente su tutti i canali.

Queste best practice semplificano la gestione degli aggiornamenti, il test di nuove funzionalità e il mantenimento della stabilità nel processo di deployment della tua app.

sbb-itb-f9944d2

Deployment di OTA Update

Una volta configurata la gestione delle versioni, segui questi passaggi per distribuire in modo efficace gli aggiornamenti OTA.

Preparazione dell'aggiornamento

Inizia aggiornando la versione in package.json e capacitor.config.json. Assicurati che la versione segua il formato SemVer (MAJOR.MINOR.PATCH):

  • Bug Fix: Incrementa il numero PATCH (es. 1.0.1 → 1.0.2)
  • Nuova funzionalità: Incrementa il numero MINOR (es. 1.0.0 → 1.1.0)
  • Breaking Change: Incrementa il numero MAJOR (es. 1.0.0 → 2.0.0)

Testa accuratamente il tuo build e verifica che l'app comunichi con il server utilizzando notifyAppReady.

Successivamente, decidi il tuo strategia di aggiornamento. Puoi scegliere tra:

  • Auto-aggiornamento: Applica automaticamente i requisiti di versione minima.
  • Controllo manuale: Specifica i requisiti di versione esatti per gli aggiornamenti.
  • Basato su canali: Usa i canali per i test e i rollouts graduali.

Capgo CLI Comandi di update

Usa la CLI di Capgo per distribuire i tuoi update con facilità. Ecco come:

# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]

# Upload your update bundle
npx @capgo/cli bundle upload [appId]

# Add a new distribution channel
npx @capgo/cli channel add [channelName] [appId]

Capgo garantisce deployment sicuri con crittografia end-to-end e gestione sicura delle chiavi.

“@Capgo è un modo intelligente per fare push hot di code (e non a peso d'oro come con @AppFlow) 🙂”

Una volta distribuito, puoi monitorare gli update tramite la dashboard di Capgo. Gli update raggiungono gli utenti in pochi minuti dall'apertura dell'app. Il processo funziona così:

  • L'app controlla se ci sono update.
  • Scarica l'update in background.
  • Segna la nuova versione come attiva quando l'utente esce dall'app.
  • Applica l'update al prossimo avvio.

Per deployment di livello enterprise, potresti voler integrare l'automazione CI/CD.

“Lavoriamo in agile e @Capgo è fondamentale per fornire aggiornamenti continui ai nostri utenti!”

Risoluzione dei problemi e consigli

Problemi di gestione delle versioni

Gestire il semantic versioning in Capgo può a volte complicare il deployment degli update. Per evitare di sovrascrivere il tuo lavoro di sviluppo, configura quanto segue nel tuo capacitor.config.json dell'app:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Se un update fallisce, ecco cosa puoi fare:

  • Imposta autoUpdate a false durante lo sviluppo.
  • Disinstalla l'app.
  • Reinstallala con la versione corretta.
  • Riabilita gli auto-update una volta che tutto è stabile.

Per gli update di versioni major, usa il disableAutoUpdateBreaking flag e ascolta il majorAvailable event to handle updates properly:

CapacitorUpdater.addListener('majorAvailable', (info) => {
  console.log(`Major update available: ${info.version}`);
  // Add your update prompt logic here
});

Combinando queste configurazioni con buone pratiche di team, puoi mantenere la coerenza delle versioni e ridurre gli errori.

Controllo delle versioni del team

Una volta gestiti gli aggiornamenti individuali, è fondamentale per i team stabilire solide pratiche di controllo delle versioni.

“Testare ogni modifica prima di unirla al repository principale rafforza la stabilità ed evita errori costosi” [4]

Ecco alcuni metodi per garantire la coerenza:

  • Definisci un branch come repository principale da usare come fonte di verità.
  • Usa canali Capgo separati per gli ambienti di sviluppo e produzione.
  • Automatizza l'upload delle versioni tramite pipeline CI/CD.
  • Documenta tutte le modifiche code con messaggi di commit chiari e dettagliati.

Per i team più grandi, questa matrice di gestione delle versioni può aiutare a organizzare gli update:

Ambiente Canale Auto-aggiornamento Pattern di versione
Sviluppo dev Disabilitato 0.x.x
Staging beta Abilitato x.x.x-beta
Produzione stable Abilitato x.x.x

Procedure di recupero degli aggiornamenti

Anche con le precauzioni, gli aggiornamenti possono fallire. Se ciò accade, segui questi passaggi di recupero:

  1. Ripristina un bundle stabile precedente.
  2. Incrementa i numeri di versione per le nuove correzioni (nota: i numeri di versione non possono essere riutilizzati dopo l'eliminazione) [2].
  3. Verifica gli aggiornamenti all'avvio dell'app per assicurarti che funzionino come previsto.

L'updater di Capgo è progettato per gestire le interruzioni. Ad esempio, se il server non è raggiungibile o un aggiornamento viene eliminato, l'app continua a funzionare normalmente [3]. Inoltre, le richieste di rete non riuscite vengono automaticamente riprovate al successivo avvio dell'app [3]Questa resilienza integrata riduce al minimo i tempi di inattività e garantisce operazioni più fluide.

Riassunto

Il Semantic Versioning, combinato con Capgo, ha reso gli aggiornamenti OTA per le app Capacitor più efficienti. Con 947,6 milioni di aggiornamenti distribuiti e 1.400 app in produzione che usano questo sistema [1], i processi di deployment sono diventati più efficienti dell'81% [1]Questa configurazione permette agli sviluppatori di rilasciare aggiornamenti rapidamente e in modo controllato, saltando i tempi di attesa degli app store.

Ecco cosa dicono gli sviluppatori:

“Abbiamo rilasciato gli aggiornamenti OTA di Capgo in produzione per la nostra base di oltre 5000 utenti. Il funzionamento è molto fluido: quasi tutti i nostri utenti sono aggiornati entro pochi minuti dal deployment dell'OTA su @Capgo.” - colenso [1]

Il sistema di versioning MAJOR.MINOR.PATCH facilita la comunicazione di breaking changes, nuove feature e bug fix [5]Questo è particolarmente utile per i team che gestiscono diversi rilasci ogni settimana tramite la piattaforma di Capgo.

di Capgo soluzione crittografata, integrata con strumenti CI/CD, è anche conveniente: taglia i costi fino a 26.100 $ in cinque anni [1]. I suoi canali personalizzabili garantiscono che gli aggiornamenti raggiungano gli utenti giusti al momento giusto.

“Seguiamo lo sviluppo agile e @Capgo è fondamentale per fornire rilasci continui ai nostri utenti!” - Rodrigo Mantica [1]

Continua la lettura: Come usare il Semantic Versioning con gli Capgo OTA Updates

Se stai usando Come usare il Semantic Versioning con gli Capgo OTA Updates per pianificare rollback e version control, connettilo a Rollback per i dettagli di implementazione nei Rollback, Targeting delle versioni per i dettagli di implementazione nel Version Targeting, Comportamento degli aggiornamenti per i dettagli di implementazione nell'Update Behavior, bundle per i dettagli di implementazione nel bundle, e Live Updates di Capgo per il workflow del prodotto in Capgo Live Updates.

Live updates per le app Capacitor

Quando un bug nel web-layer è live, rilascia la fix tramite Capgo invece di aspettare giorni l'approvazione degli store. Gli utenti ricevono l'update in background, mentre le modifiche native restano nel normale processo di review.

Ultimi articoli dal blog

Capgo ti offre gli insight migliori che ti servono per creare un'app mobile davvero professionale.