Capgo Verificatore di Semver
Verifica la compatibilità della versione semantica per le tue Capacitor aggiornamenti dell'app
Cosa significa "Versione Locale"
La Versione Locale è la versione già presente sul dispositivo quando richiede al server di aggiornamento un pacchetto. 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 di iOS o Android. Non assumere che sia la tua package.json
versione a meno che non copi quel valore nella configurazione o nei metadati nativi.
Configurazione Capacitor
Imposta CapacitorUpdater.version quando desideri una versione esplicita inviata dall'applicazione.
Pro: facile da mantenere identico tra le build iOS e Android.
Con: una configurazione datata può riportare la versione sbagliata se dimentichi di aggiornarla prima di una rilascio nativo.
Versione dell'applicazione nativa
Usa la versione della piattaforma, ad esempio iOS CFBundleShortVersionString o Android
versionName.
Pro: corrisponde alla versione binaria installata dai utenti da TestFlight, App Store, Play Store o test interni.
Con: modificarlo richiede una build nativa e può differire tra piattaforme se le impostazioni di rilascio si allontanano.
Bundle di destinazione
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 nativi più recenti code per vecchie versioni dell'applicazione.
Contro: le regole troppo restrittive possono bloccare 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, quindi confrontala con la versione remota del bundle che desideri Capgo inviare.
Perché Capgo utilizza la versione semantica
La versione semantica è lo standard di versioning più ampiamente adottato nello sviluppo software. Utilizzando semver, Capgo garantisce compatibilità e sicurezza quando si inviano aggiornamenti live alle tue Capacitor applicazioni.
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 minimi (1.0.0 → 1.1.0): Nuove funzionalità, compatibili con il passato
- Aggiornamenti maggiori (1.0.0 → 2.0.0): Cambiamenti di compatibilità, richiedono rilascio di app nativa sullo store
Ciò impedisce a Capgo di inviare mai un aggiornamento incompatibile al tuo code, proteggendo i tuoi utenti da crash e assicurando che l'app rimanga stabile.
Strategie Semver Flessibili: Oltre la Versioning Base
Sebbene semver sia rigoroso sul suo formato base, puoi estenderlo per le esigenze del tuo team utilizzando identificatori di pre-release e metadati di costruzione:
🏷️ Metadati di Costruzione (+) - La 'Lamina Cosmetica'
Importante: I metadati di costruzione vengono ignorati nella precedenza della versione -
1.2.0+anything uguale 1.2.0 per Capgo's logica di aggiornamento.
🔧 Identificatori di pre-uscita (-) - Canali di sviluppo
Nota: Le versioni pre-release hanno una precedenza inferiore -
1.3.0-beta.1 < 1.3.0
Approccio ibrido - Migliori di entrambi i mondi
Casi d'uso Semver nel mondo reale & strategie di squadra
🚀 Sviluppo rapido / Startup
0.1.0 - Primo rilascio MVP0.2.0-beta.1 - Nuova funzione di testing0.2.0+ui.v2 - Ri-design dell'interfaccia utente per metadati1.0.0 - Pronto per la produzioneUtilizza 0.x.x per lo sviluppo pre-1.0, metadati per il tracking del design
🏢 Imprese / Regolamentate
2.1.0 → Rilascio trimestrale2.1.1+sec.patch.cve2024 → Patch di sicurezza con tracking2.2.0-rc.1+audit.ready → Candidato per la rilascio pre-auditSemver rigoroso con metadati di conformità
🎮 Applicazioni di gioco / Creative
1.0.0+season.winter.2024 → Contenuto stagionale1.1.0+event.halloween → Caratteristiche guidate dagli eventi1.2.0+assets.hd.remaster → Aggiornamenti di assetMetadati creativi per il tracciamento dei contenuti
⚡ Strategia di Hotfix
1.2.0 → Produzione corrente1.2.1-hotfix.payment → Correzione critica di bug1.2.1+urgent.20240315.1430 → Rilasciato con timestampPre-rilascio per test, metadati per il tracciamento della distribuzione
🌍 Strategia Multi-Platform
1.3.0+ios.optimized → Ottimizzazioni iOS specifiche1.3.0+android.material3 → Aggiornamenti di design Android1.3.0+web.pwa.ready → Capacità PWAStessa versione, metadati specifici per piattaforma
Integrazione CI/CD
1.4.0-alpha.1+build.123 → Distribuzione pre-rilascio automatizzata1.4.0+deploy.staging.456 → Distribuzione di staging automatizzata1.4.0+prod.final.789 → Distribuzione di produzione automatizzataVersione automatica con metadati di distribuzione
- Usa i metadati di costruzione (+) per la tracciatura, i timestamp o le informazioni estetiche che non influiscono sulla compatibilità
- Usa gli identificatori di pre-rilascio (-) 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 una versione semantica 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.
Per esempio, npm tratta le versioni come 1.0.0-alpha.1
in modo diverso rispetto a quanto richiesto dalla 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' in testa 1.0 ✗ Mancanza di versione di patch 1.0.0.0 ✗ Troppi componenti di versione 1.0.0- ✗ Pre-release vuoto 1.0.0+ ✗ Metadati di build vuoti Capgo Comportamento dell'aggiornamento
Questo strumento segue le linee guida ufficiali Specificazione di versione semantica a differenza dell'implementazione di npm.