Capgo Tester Semver
Verifica la compatibilità della politica del canale rispetto alla baseline nativa inviata come version_build
La versione del pacchetto assegnata al canale risolto.
Cos'è la "Versione di Baseline Nativa"
La Versione di Baseline Nativa è la versione dell'app nativa inviata a Capgo quando
version_build quando il dispositivo chiede al server di aggiornamento un bundle. In un'app Capacitor, quel valore può provenire da
CapacitorUpdater.version da capacitor.config.*Se quella impostazione non è presente, il plugin ricade sulla versione dell'app nativa da 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.
Capgo utilizza ancora version_name per sapere quale bundle scaricato è attualmente installato. Le politiche semver del canale, come major, minor, e
patch confronta il bundle remoto contro version_build.
Capacitor configurazione
Imposta CapacitorUpdater.version quando desideri una versione esplicita inviata dall'app.
Pro: facile da mantenere lo stesso per le build di iOS e Android.
Con: la configurazione obsoleta 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 a seconda della piattaforma se i parametri 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 binari di app vecchi.
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 il baseline nativo che il dispositivo invia come version_builde confrontalo con la versione del bundle remoto 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_KEEP_0__ garantisce compatibilità e sicurezza quando si inviano aggiornamenti live ai propri __CAPGO_KEEP_1__ app. is the most widely adopted versioning standard in software development. By using semver, Capgo ensures compatibility and safety when delivering live updates to your Capacitor apps.
The semver standard allows Capgo to understand exactly what changes are included in each update:
- 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 negli store Ciò impedisce a __CAPGO_KEEP_0__ di inviare mai un aggiornamento incompatibile al proprio __CAPGO_KEEP_1__ nativo, proteggendo gli utenti da crash e assicurando che l'app rimanga stabile.
This prevents Capgo from ever sending an incompatible update to your native code, protecting your users from crashes and ensuring your app remains stable.
Mentre semver è rigoroso sul suo formato di base, puoi estenderlo per le esigenze del tuo team utilizzando
__CAPGO_KEEP_0__ identificatori di versione pre-rilascio e Metadati di costruzione:
🏷️ Metadati di costruzione (+) - La "Cappa" di Decorazione
Importante: I metadati di costruzione sono ignorati nella precedenza delle versioni -
1.2.0+anything uguale 1.2.0 per la logica di aggiornamento di Capgo.
🔧 Identificatori di pre-rilascio (-) - Canali di sviluppo
Nota: Le versioni di pre-rilascio hanno una precedenza inferiore -
1.3.0-beta.1 < 1.3.0
🎯 Approccio ibrido - Migliore di entrambi i mondi
Casi di utilizzo Semver nel mondo reale & strategie di squadra
🚀 Sviluppo rapido / Startup
0.1.0 - Primo rilascio MVP0.2.0-beta.1 - Test di nuova funzionalità0.2.0+ui.v2 - Metadati di ridisegno dell'interfaccia utente1.0.0 - Rilascio pronto per la produzioneUsa 0.x.x per lo sviluppo pre-1.0, metadati per il tracciamento del design
🏢 Imprese / Regolamentate
2.1.0 → Rilascio trimestrale2.1.1+sec.patch.cve2024 → Patch di sicurezza con tracciamento2.2.0-rc.1+audit.ready → Candidato di rilascio pre-auditStrict semver con metadati di conformità
Giochi e App creativi 🎮
1.0.0+season.winter.2024 → Contenuto stagionale1.1.0+event.halloween → Caratteristiche basate su eventi1.2.0+assets.hd.remaster → Aggiornamenti di assetMetadati creativi per il tracking del contenuto
⚡ 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 tracking della distribuzione
🌍 Strategia Multi-Platform
1.3.0+ios.optimized → Ottimizzazioni specifiche per iOS1.3.0+android.material3 → Aggiornamenti di design per Android1.3.0+web.pwa.ready → Funzionalità di 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 staging1.4.0+prod.final.789 → Distribuzione di produzioneVersione automatica con metadati di distribuzione
- Utilizza i metadati di build (+) per la tracciatura, i timestamp o le informazioni estetiche che non influiscono sulla compatibilità
- Utilizza 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 la versione semantica rigorosa
A differenza dell'implementazione semver di npm, Capgo segue rigorosamente la specifica SemVer. npm's node-semver ha delle deviazioni note dalla spec, che possono causare comportamenti inaspettati.
Ad esempio, npm tratta versioni come 1.0.0-alpha.1
differente rispetto a quanto richiesto dalla specifica. Vedi il nostro
issue segnalato e
tentativo di risoluzione che non è mai stato integrato.
Versioni Semantiche Validi
1.0.0
✓ Rilascio standard
2.1.3-alpha
✓ Prima della versione di rilascio
1.0.0-beta.1
✓ Prima della versione di rilascio 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
Questo strumento segue la specifica di versionamento semantico ufficiale diversamente dall'implementazione di __CAPGO_KEEP_0__. unlike npm's implementation.