Salta al contenuto principale

Version tagging nelle app Capacitor

Scopri le basi del version tagging nelle app Capacitor, con le migliori pratiche per aggiornamenti, sincronizzazione e automazione.

Version tagging nelle app Capacitor Capgo illustrazione del blog

Il version tagging è essenziale per gestire Capacitor le app. Garantisce aggiornamenti fluidi, traccia le modifiche e migliora l'affidabilità dell'app su piattaforme iOS, Android e web. Ecco una panoramica rapida:

  • Perché è importante: Traccia gli aggiornamenti, abilita i rollback e garantisce deployment stabili.
  • Versionamento Semantico: Usa MAJOR.MINOR.PATCH per indicare breaking changes, nuove feature o bug fix.
  • Sincronizzazione tra piattaforme: Allinea i numeri di versione in package.json, iOS Info.plist, e Android build.gradle.
  • Automazione: Automatizza gli update con gli script npm e gli strumenti CI/CD.
  • Live Update: Strumenti come Capgo consegnare aggiornamenti al 95% degli utenti entro 24 ore.
  • Gestione Beta: usa canali strutturati per versioni alpha, beta e di produzione.

Confronto rapido

Funzionalità Scopo Esempio
Versionamento Semantico Traccia le modifiche in modo chiaro 1.2.3 → 2.0.0
Sincronizza le versioni Allinea tra le piattaforme npx cap sync
Automazione Accelera gli update di versione npm version patch
Live Update Adozione rapida utenti Il 95% di Capgo in 24 ore
Canali beta Fasi di testing controllate 1.3.0-beta.1

Il version tagging semplifica app più veloci, soddisfa gli utenti e permette ai dev di gestire le release.

Come configurare AUTOMATICAMENTE il tuo Capacitor progetto ⚡️

Sito della documentazione del framework Capacitor

Configurazione delle versioni in Capacitor

Segui questi passaggi per garantire una gestione delle versioni coerente su tutte le piattaforme della tua app Capacitor.

Impostare la versione in package.json

Il package.json Il file funge da fonte principale per i dettagli della versione della tua app. Ecco un esempio di configurazione:

{
  "name": "your-app-name",
  "version": "1.2.3",
  "private": true,
  "dependencies": {
    "@capacitor/core": "5.5.0",
    "@capacitor/ios": "5.5.0",
    "@capacitor/android": "5.5.0"
  }
}

Quando aggiorni il numero di versione, usa le regole di semantic versioning (SemVer):

  • Versione maggiore (1.x.x): Introduce modifiche non retrocompatibili.
  • Versione minore (x.2.x): Aggiunge nuove funzionalità retrocompatibili.
  • Versione patch (x.x.3): Corregge bug o apporta piccoli miglioramenti.

Sincronizzare le versioni delle piattaforme

È fondamentale allineare i numeri di versione su tutte le piattaforme per un deployment fluido. Ogni piattaforma ha il proprio file di configurazione per il versioning:

Piattaforma File di configurazione Version Key
iOS Info.plist CFBundleShortVersionString
Android build.gradle versionName
Web package.json installata

Dopo aver aggiornato la versione in package.json, usa questo comando per sincronizzare le modifiche con le configurazioni della piattaforma nativa:

npx cap sync

Gestione delle versioni con Capacitor CLI

La Capacitor CLI offre comandi utili per gestire le versioni:

# Check the current version of Capacitor
npx cap --version

# Update Capacitor core and platform dependencies
npm install @capacitor/core@latest
npm install @capacitor/ios@latest
npm install @capacitor/android@latest

# Sync version changes to native platforms
npx cap sync

Mantenere aggiornata la Capacitor CLI garantisce la compatibilità con le funzionalità specifiche della versione e riduce i possibili disallineamenti. Seguendo questi passaggi manterrai un versioning corretto nella tua app.

Configurazione del Semantic Versioning

Basi del Semantic Versioning

Versioning Semantico (SemVer) utilizza il formato MAJOR.MINOR.PATCH, dove ogni parte indica un tipo specifico di modifica:

Componente della versione Scopo
MAJOR Introduce breaking changes a API
MINOR Aggiunge nuove funzionalità compatibili con le versioni precedenti
PATCH Corregge bug o migliora le performance senza rompere la compatibilità

Questo sistema permette agli sviluppatori di comunicare chiaramente gli aggiornamenti mantenendo la compatibilità tra le versioni dell'app. Ad esempio, passando da 1.2.3 a 2.0.0 segnala aggiornamenti major e breaking che richiedono una pianificazione attenta.

Quando aggiornare i numeri di versione

Ecco come decidere quale numero di versione aggiornare:

Tipo di update Quando usarlo Esempio di cambio versione
Aggiornamento major Per breaking change di API o grandi redesign della UI 1.2.3 → 2.0.0
Aggiornamento minore Per introdurre nuove feature o segnare quelle deprecate 1.2.3 → 1.3.0
Aggiornamento patch Per bug fix o piccoli miglioramenti delle performance 1.2.3 → 1.2.4

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

Ora vediamo come automatizzare questi update per semplificare il release management.

Automazione degli update di versione

Automatizzare gli update di versione può far risparmiare tempo e ridurre gli errori nel tuo progetto Capacitor. Ecco come configurarlo:

  1. Script di versione NPM

Aggiungi questi script al tuo package.json file to manage version updates easily:

{
  "scripts": {
    "version:patch": "npm version patch",
    "version:minor": "npm version minor",
    "version:major": "npm version major"
  }
}
  1. Integrazione CI/CD
    Integra gli aggiornamenti di versione nella tua pipeline CI/CD. Capgo supporta strumenti come Azioni GitHub, GitLab CI, e Jenkins, rendendo semplice automatizzare il processo.

“Capgo è uno strumento indispensabile per gli sviluppatori che cercano produttività evitando lunghe revisioni di bugfix.” - Bessie Cooper [1]

Metodi di version tagging

Version tags di Git

I version tags di Git sono un modo affidabile per tenere traccia di Capacitor release delle app. Per creare tag chiari e informativi, combina il versioning semantico con una breve descrizione:

git tag -a v1.2.3 -m "Release v1.2.3: Added offline mode support"

Per mantenere la coerenza nel team, usa un formato di tagging standardizzato:

Componente Tag Formato Esempio
Versione release v[MAJOR].[MINOR].[PATCH] v1.2.3
Release beta v[VERSION]-beta.[NUMBER] v1.2.3-beta.1
Release candidate v[VERSION]-rc.[NUMBER] v1.2.3-rc.2

Integrazione del numero di build

I numeri di build aiutano a tracciare le singole build all'interno di ogni versione. Per iOS e Android, incrementa il numero di build con ogni invio:

{
  "ios": {
    "version": "1.2.3",
    "build": "10234"
  },
  "android": {
    "version": "1.2.3",
    "versionCode": "10234"
  }
}

Il numero di build deve aumentare sempre, anche se la versione rimane la stessa. Questo garantisce che ogni invio all'app store sia identificato in modo univoco, mantenendo al contempo la versioning chiara per gli utenti.

Gestione delle versioni beta

Gestire le versioni beta richiede un processo strutturato per distribuire i build di test. Capgo’s sistema di canali semplifica il processo con i seguenti passaggi:

  1. Configurazione dei canali

Crea canali separati per ogni fase di test:

{
  "beta": {
    "version": "1.3.0-beta.1",
    "users": "beta-testers"
  },
  "production": {
    "version": "1.2.3",
    "users": "all"
  }
}
  1. Controlla l'accesso utenti

Configura i permessi per controllare chi può accedere alle versioni beta. In questo modo, solo i tester approvati ricevono le build beta, mentre gli utenti in produzione ottengono release stabili.

  1. Progressione delle versioni

Utilizza un chiaro sistema di progressione delle versioni per tracciare le fasi di sviluppo:

Fase Formato versione Scopo
Alpha 1.3.0-alpha.1 Test interno
Beta 1.3.0-beta.1 Gruppo di test esterno
RC (Release Candidate) 1.3.0-rc.1 Test finali prima del rilascio
Produzione 1.3.0 Rilascio pubblico

Questo approccio garantisce test approfonditi e transizioni fluide tra le fasi di sviluppo, mantenendo il tracciamento delle versioni organizzato e trasparente per tutto il processo.

Visualizzazione versione dell'app

Mostrare informazioni accurate sulla versione nella tua app è fondamentale per informare gli utenti e gestire gli aggiornamenti in modo efficace.

Ottenere la versione con Capacitor

Puoi recuperare i dettagli della versione usando Capacitor con questo code:

import { App } from '@capacitor/app';

async function getAppInfo() {
  const info = await App.getInfo();
  console.log(`Version: ${info.version}`);
  console.log(`Build: ${info.build}`);
}

Per un approccio più snello, crea una funzione riutilizzabile:

export const getVersionString = async () => {
  const info = await App.getInfo();
  return `v${info.version} (${info.build})`;
};

Questa funzione semplifica il processo di visualizzazione delle informazioni sulla versione nell'interfaccia della tua app.

Implementazione UI della versione

Ecco un esempio di come integrare la visualizzazione della versione in un componente delle impostazioni:

@Component({
  selector: 'app-settings',
  template: `
    <div class="version-info">
      <span>Version: {{ versionString }}</span>
      <span *ngIf="updateAvailable" class="update-badge">
        Update Available
      </span>
    </div>
  `
})

I luoghi comuni in cui mostrare i dettagli della versione includono:

Posizione Scopo Implementazione
Schermata Impostazioni Versione completa e build Informazioni dettagliate sulla versione
About Page Visualizzazione base della versione Solo numero di versione
Footer dell'app Visualizzazione minima Stringa di versione abbreviata

Oltre a mostrare le info sulla versione, integrare un sistema di controllo aggiornamenti può migliorare l'esperienza utente.

Sistema di controllo aggiornamenti

Un sistema di controllo aggiornamenti assicura che gli utenti abbiano accesso alle ultime feature e fix. Capgo offre notifiche in tempo reale e canali di aggiornamento controllati per gestire questo processo:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

async function checkForUpdates() {
  const current = await CapacitorUpdater.current();
  const latest = await CapacitorUpdater.getLatest();

  if (current.version !== latest.version) {
    await CapacitorUpdater.download({
      version: latest.version
    });
  }
}

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

Puoi anche aggiungere una notifica di aggiornamento per l'utente, come questa:

@Component({
  template: `
    <update-modal 
      [version]="newVersion"
      [features]="updateFeatures"
      (updateNow)="performUpdate()"
    />
  `
})

Per le app enterprise, il sistema di canali di Capgo ti permette di controllare la distribuzione degli update:

Canale Tipo di update Pubblico target
Produzione Release stabili Tutti gli utenti
Beta Versioni pre-release Gruppo di test
Critico Correzioni urgenti Utenti interessati

Questo metodo garantisce l'affidabilità dell'app monitorando le prestazioni degli aggiornamenti tramite la dashboard analitica di Capgo.

Soluzioni per la gestione delle versioni

Approfondiamo le soluzioni avanzate per gestire efficacemente le versioni delle app.

Opzioni del tool di versioning

Nella scelta degli strumenti di versioning, è importante puntare su quelli che semplificano gli aggiornamenti, proteggono il tuo code e supportano sia i rilasci sugli store sia gli aggiornamenti live.

Ecco alcune funzionalità chiave da considerare:

Funzionalità Importanza Impatto
Live Update Critico Riduce i ritardi causati dalle revisioni degli app store
Sicurezza Essenziale Protegge i dati utente e l'integrità di code
Analytics Importante Measures update success and user adoption
Integrazione CI/CD Utile Semplifica i processi di deployment
Efficienza dei costi Strategico Influences long-term budget planning

Uno strumento di spicco in questo ambito è Capgo, che offre funzionalità pensate appositamente per app Capacitor.

Capgo Funzionalità di Version Control

Capgo Live Update Interfaccia Dashboard

Capgo offre solide capacità di gestione delle versioni, tra cui:

  • 23,5M di aggiornamenti completati con successo
  • 95% degli utenti aggiornati entro 24 ore
  • tasso di successo globale dell'82%
  • 434ms di tempo di risposta medio di API in tutto il mondo

Ecco un esempio di come usare Capgo per il version control:

// Capgo version control example
import { CapacitorUpdater } from '@capgo/capacitor-updater';

const versionControl = {
  async checkVersion() {
    const current = await CapacitorUpdater.current();
    return current.version;
  },

  async deployUpdate(version: string) {
    await CapacitorUpdater.setChannel({
      channel: 'production',
      version: version
    });
  }
};

“Stiamo provando @Capgo dato che Appcenter ha interrotto il supporto per i live updates sulle app ibride e @AppFlow è decisamente troppo costoso.” - Simon Flack [1]

Soluzioni per team

Capgo offre piani flessibili per team di ogni dimensione, rendendo la gestione delle versioni scalabile ed efficiente.

Dimensione team Piano Caratteristiche principali
Solo per sviluppatori Hosting cloud base Live updates, 1.000 MAU
Piccolo team (2-5) Piano Maker 10.000 MAU, 500 GB di banda
Team medio (6-20) Piano Team 100.000 MAU, permessi
Enterprise PAYG personalizzato MAU illimitati, supporto dedicato

Per i team più grandi, il sistema di canali di Capgo permette un controllo preciso sul deployment delle versioni:

const enterpriseVersionControl = {
  channels: {
    production: 'stable-releases',
    beta: 'early-access',
    internal: 'development'
  },

  async deployToChannel(channel: string, version: string) {
    await CapacitorUpdater.setChannel({
      channel: channel,
      version: version
    });
  }
};

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

Capgo include anche una dashboard di analytics per monitorare i tassi di adozione delle versioni e rilevare tempestivamente eventuali problemi. Grazie alla crittografia integrata e alle opzioni di hosting personalizzabili, i team possono mantenere la sicurezza scalando i propri workflow di deployment.

Conclusione

Comprendere il version tagging è fondamentale per semplificare i processi di sviluppo e deployment. Ecco un rapido riepilogo dei concetti principali e dei passaggi per iniziare.

Punti chiave

Il version tagging aiuta gli sviluppatori a gestire update fluidi e affidabili. Un controllo delle versioni adeguato offre vantaggi chiari:

Vantaggio Impatto Risultato
Update istantanei Tempi di revisione più brevi Adozione utenti più rapida [1]
Controllo di versione Gestione migliore di code Tassi di successo più elevati [1]
Monitoraggio degli aggiornamenti Monitoraggio in tempo reale Risoluzione più rapida dei problemi [1]
Controllo della distribuzione Rollout mirati Supporto multi-piattaforma

Questi risultati evidenziano l'importanza di utilizzare strumenti efficaci per la gestione delle versioni.

Come iniziare

Per mettere in pratica questi vantaggi, segui questi passaggi:

  • Configura il tracciamento delle versioni: usa la versioning semantica nel tuo package.json file e integra i plugin necessari.
  • Aggiungi controlli degli aggiornamenti: Implementa sistemi per verificare e tracciare gli aggiornamenti di versione.
  • Configura i canali di distribuzione: Crea ambienti separati per produzione, beta e sviluppo.

Infine, valuta l'aggiunta di un sistema live update per garantire deploy rapidi e sicuri.

Continua con il Version Tagging nelle app Capacitor

Se stai usando Version tagging nelle app Capacitor 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.