Vai alla sezione principale

Capgo Tester di Semver

Verifica la compatibilità di versione semantica per le tue Capacitor aggiornamenti dell'app

La versione dell'app installata che viene riferita a Capgo, dal config o dai metadati dell'app nativa.

Inserisci due versioni semantiche per visualizzare la comparazione

Cos'è "Versione Locale"

La Versione Locale è la versione già presente sul dispositivo quando richiede al server di aggiornamento un bundle. In un'app Capacitor, quel valore può provenire da CapacitorUpdater.version in capacitor.config.*Se quel setting non è presente, il plugin ricade sulla versione nativa dell'app da iOS o Android. Non assumere che sia tuo package.json version a meno che non copi il valore di costruzione in config o metadati nativi.

Capacitor config

Setta CapacitorUpdater.version quando desideri una versione esplicita inviata dall'app.

Pro: facile da mantenere lo stesso per le costruzioni di iOS e Android.

Con: la config non aggiornata può riportare la versione sbagliata se dimentichi di aggiornarla prima di una rilascio nativo.

Versione dell'app nativa

Usa la versione della piattaforma, ad esempio iOS CFBundleShortVersionString o Android versionName.

Pro: corrisponde al binario degli utenti installato da TestFlight, App Store, Play Store o test interni.

Contro: modificarlo richiede una compilazione nativa e può differire in base al sistema operativo se le impostazioni di rilascio si allontanano.

Target bundle

Confrontalo con le versioni remote del bundle, le regole semver del canale o le restrizioni di caricamento come --native-version.

Pro: prevenire l'invio di JavaScript che richiede una versione nativa code più recente per i binari degli app vecchi.

Contro: le regole troppo restrittive possono bloccare gli aggiornamenti validi fino a quando il canale o i metadati del bundle non vengono aggiustati.

Per questo tester, inserisci la versione che il dispositivo riporterebbe come locale, poi confrontala con la versione remota del bundle che desideri Capgo inviare.

Perché Capgo utilizza la versione semantica

Versione semantica è la versione più ampiamente adottata dello standard di versioning nel software sviluppato. Utilizzando semver, Capgo garantisce compatibilità e sicurezza quando si inviano aggiornamenti live ai propri Capacitor app.

Lo standard semver consente a Capgo di comprendere esattamente quali modifiche sono incluse in ogni aggiornamento:

  • Aggiornamenti di patch (1.0.0 → 1.0.1): Correzioni di bug, sicure per l'applicazione automatica
  • Aggiornamenti minori (1.0.0 → 1.1.0): Nuove funzionalità, compatibili con il passato
  • Aggiornamenti maggiori (1.0.0 → 2.0.0): Cambiamenti dirompenti, richiedono rilascio di app nativa sullo store

Ciò impedisce a Capgo di inviare mai un aggiornamento incompatibile al proprio code, proteggendo gli utenti da crash e assicurando che l'app rimanga stabile.

Strategie Semver flessibili: oltre la versioning base

Mentre semver è rigoroso sul suo formato di base, puoi estenderlo per le esigenze del tuo team utilizzando identificatori di pre-release Ecco costruire i metadati:

🏷️ Metadati di costruzione (+) - La "Cappa" di livello

1.2.0+20240315.142530
Timestamp per il tracciamento della distribuzione
1.2.0+ui.refresh.dark-mode
Descrizione dell'aggiornamento UI per il team di design
1.2.0+build.4729.commit.a1b2c3d
Numero di costruzione CI/CD e commit Git

Importante: I metadati di costruzione sono ignorati nella precedenza della versione - 1.2.0+anything uguale 1.2.0 per Capgo's logica di aggiornamento.

🔧 Identificatori di anteprima (-) - Canali di sviluppo

1.3.0-beta.1
Canale di testing beta
1.3.0-hotfix.payment
Ramo di correzione urgente
1.3.0-feature.newapi
Ramo di testing per nuove funzionalità

Nota: Le versioni di anteprima hanno una precedenza inferiore - 1.3.0-beta.1 < 1.3.0

🎯 Approccio ibrido - Migliore di entrambi i mondi

1.3.0-rc.1+ui.redesign.20240315
Candidato di rilascio con metadati di interfaccia utente e timestamp

Utilizzo reale dei casi di semver e strategie di squadra

🚀 Sviluppo veloce / Startup

0.1.0 - Prima versione MVP
0.2.0-beta.1 - Test di nuova funzionalità
0.2.0+ui.v2 - Metadati per la ridisegnazione dell'interfaccia utente
1.0.0 - Pronto per la produzione

Utilizza 0.x.x per lo sviluppo pre-1.0, metadati per la tracciatura del design

🏢 Impresa / Regolamentata

2.1.0 → Rilascio trimestrale
2.1.1+sec.patch.cve2024 → Patch di sicurezza con tracciamento
2.2.0-rc.1+audit.ready → Candidato per il rilascio pre-audit

Semver rigoroso con metadati di conformità

🎮 Applicazioni di Gioco / Creativo

1.0.0+season.winter.2024 → Contenuto stagionale
1.1.0+event.halloween → Caratteristiche di evento
1.2.0+assets.hd.remaster → Aggiornamenti di asset

Metadati creativi per il tracciamento del contenuto

⚡ Strategia di Hotfix

1.2.0 → Produzione corrente
1.2.1-hotfix.payment → Correzione critica di bug
1.2.1+urgent.20240315.1430 → Rilasciato con timestamp

Pre-rilascio per la prova, metadati per il tracciamento della distribuzione

🌍 Strategia Multi-Platforma

1.3.0+ios.optimized → Ottimizzazioni iOS specifiche
1.3.0+android.material3 → Aggiornamenti di progettazione per Android
1.3.0+web.pwa.ready → Funzionalità di PWA

Stessa versione, metadati specifici della piattaforma

🔄 Integrazione CI/CD

1.4.0-alpha.1+build.123 → Distribuzione pre-anteprima automatizzata
1.4.0+deploy.staging.456 → Distribuzione di staging
1.4.0+prod.final.789 → Distribuzione di produzione

Versione automatica con metadati di distribuzione

💡 Pro Tip:
  • Utilizza i metadati di costruzione (+) per la tracciatura, i timestamp o le informazioni estetiche che non influiscono sulla compatibilità
  • Utilizza gli identificatori di anteprima (-) per i canali di sviluppo che richiedono una precedenza diversa degli aggiornamenti
  • Combina entrambi per massima flessibilità: 1.2.0-beta.1+ui.dark.theme.20240315
  • Ricorda: Capgo rispetta le regole di precedenza semver, quindi pianifica la tua strategia di canale di conseguenza

Importante: Capgo utilizza la versioning semantico rigorosa

A differenza dell'implementazione semver di npm, Capgo segue la specifica SemVer ufficiale in modo rigoroso. npm's node-semver ha delle deviazioni note dalla spec, che possono causare un comportamento imprevisto.

Ad esempio, npm tratta versioni come 1.0.0-alpha.1 differente rispetto a ciò che richiede la specifica. Vedi il nostro issue segnalato e tentativo di risoluzione che non è mai stato integrato.

Versioni Semanticamente Validi

1.0.0 ✓ Rilascio standard
2.1.3-alpha ✓ Pre-release
1.0.0-beta.1 ✓ Pre-release con numero
1.0.0+build.1 ✓ Metadati di costruzione
1.0.0-rc.1+build.1 ✓ Versione completa

Versioni semantiche non valide

v1.0.0 ✗ Non è consentito il 'v' iniziale
1.0 ✗ Mancante la versione di patch
1.0.0.0 ✗ Troppi componenti di versione
1.0.0- ✗ Pre-release vuoto
1.0.0+ ✗ Metadati di costruzione vuoti

Capgo Comportamento dell'aggiornamento

Aggiornamenti di patch vengono applicati automaticamente (1.0.0 → 1.0.1)
Aggiornamenti minori richiedono la configurazione del canale (1.0.0 → 1.1.0)
Aggiornamenti principali richiedono rilascio nativo della store delle app (1.0.0 → 2.0.0)
Le versioni pre-release richiedono una configurazione esplicita

Questo strumento segue la specifica di versionamento semantico ufficiale diversamente dall'implementazione di __CAPGO_KEEP_0__. unlike npm's implementation.