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, iOSInfo.plist, e Androidbuild.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 ⚡️

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:
- 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"
}
}
- 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:
- 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"
}
}
- 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.
- 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 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.jsonfile 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.