versionCode vs versionName in Manifest Android


223

Ho avuto la mia app nel mercato Android con codice versione = 2 e nome versione = 1.1

Tuttavia, mentre lo aggiorno oggi, ho cambiato la versione code = 3 nel manifest ma per errore ho cambiato il nome della mia versione in 1.0.1 e ho caricato l'apk sul mercato.

Ora, gli utenti della mia app riceveranno una notifica di aggiornamento sui loro telefoni o no? O dovrei ripetere di nuovo il processo?


1
prova questo link ti aiuterà .. " developer.android.com/tools/publishing/… "
MPG

Dovrebbero, come hai aumentato il codice della versione. Che in teoria è quello usato come marker di aggiornamento.
superUser

@ user838522 potresti per favore contrassegnare la risposta più votata come la risposta selezionata?
xarlymg89,

@ CarlosAlbertoMartínezGadea: user838522 è stato visto l'ultima volta nel 2013
serv-inc

Risposte:


610

Link di riferimento

Android: versionCode

Un numero di versione interno. Questo numero viene utilizzato solo per determinare se una versione è più recente di un'altra, con numeri più alti che indicano versioni più recenti. Questo non è il numero di versione mostrato agli utenti; quel numero è impostato dall'attributo versionName. Il valore deve essere impostato come numero intero, ad esempio "100". Puoi definirlo come vuoi, purché ogni versione successiva abbia un numero più alto. [...]

Android: versionName

Il nome della versione mostrato agli utenti. Questo attributo può essere impostato come stringa non elaborata o come riferimento a una risorsa stringa. La stringa non ha altro scopo che quello di essere visualizzata agli utenti. L'attributo versionCode contiene il numero di versione significativo utilizzato internamente.

Leggendo che è abbastanza chiaro che versionName è solo qualcosa che viene mostrato all'utente, versionCode è ciò che conta. Continua ad aumentarlo e tutto dovrebbe andare bene.


1
Ciò significa che nessuna relazione matematica tra entrambi. È?
Vinil Chandran,

Questo spiega gli aggiornamenti silenziosi che sembrano essere la stessa versione.
E. Sundin

11
Solo per aggiungere una nota: il massimo valore che Google Play ammette per versionCode è 2100000000
Atul,

1
È obbligatorio mantenere la differenza del codice della versione tra vesrion aggiornata e la versione precedente dell'app nel Play Store su 1?
Sivaram Boina,

@sivaram No. Niente affatto.
Sconosciuto il

30

Non è necessario invertire i tuoi passi. Quando hai aumentato il tuo VersionCode, significa che l'applicazione è già stata aggiornata. VersionName è solo una stringa che viene presentata all'utente per la leggibilità dell'utente. Google play non esegue alcuna azione a seconda del VersionName.


9

Il codice della versione viene utilizzato da Google Play Store per il nuovo aggiornamento. E il nome della versione viene visualizzato per l'utente. Se hai un codice versione aumentato , l' aggiornamento sarà visibile a tutti gli utenti.

Per informazioni più dettagliate, leggere questo articolo in 2 minuti https://developer.android.com/studio/publish/versioning.html


6

Vi darò la mia interpretazione dell'unica documentazione che posso trovare sull'argomento.

"ad esempio per verificare una relazione di upgrade o downgrade." <- Puoi effettuare il downgrade di un'app.

"Dovresti assicurarti che ogni versione successiva della tua applicazione usi un valore maggiore. Il sistema non applica questo comportamento" <- Il numero dovrebbe davvero aumentare, ma puoi comunque effettuare il downgrade di un'app.

android: versionCode - Un valore intero che rappresenta la versione del codice dell'applicazione, rispetto ad altre versioni. Il valore è un numero intero in modo che altre applicazioni possano valutarlo a livello di programmazione, ad esempio per verificare una relazione di aggiornamento o downgrade. È possibile impostare il valore su qualsiasi numero intero desiderato, tuttavia è necessario assicurarsi che ogni versione successiva dell'applicazione utilizzi un valore maggiore. Il sistema non applica questo comportamento, ma aumentare il valore con versioni successive è normativo. In genere, rilasciare la prima versione dell'applicazione con versionCode impostato su 1, quindi aumentare monotonicamente il valore con ogni versione, indipendentemente dal fatto che la versione costituisca una versione principale o secondaria. Ciò significa che Android: Il valore versionCode non ha necessariamente una forte somiglianza con la versione della versione dell'applicazione che è visibile all'utente (vedi android: versionName, di seguito). Le applicazioni e i servizi di pubblicazione non devono mostrare questo valore di versione agli utenti.


2
Quindi posso lasciarlo a questo? Perché penso che il sistema Android controlli gli aggiornamenti delle app in base al codice versione anziché al numero di versione. Correggimi se sbaglio.
user838522

5

android: versionCode - Un valore intero che rappresenta la versione del codice dell'applicazione, rispetto ad altre versioni.

Il valore è un numero intero in modo che altre applicazioni possano valutarlo a livello di programmazione, ad esempio per verificare una relazione di aggiornamento o downgrade. È possibile impostare il valore su qualsiasi numero intero desiderato, tuttavia è necessario assicurarsi che ogni versione successiva dell'applicazione utilizzi un valore maggiore. Il sistema non applica questo comportamento, ma aumentare il valore con versioni successive è normativo.

android: versionName - Un valore stringa che rappresenta la versione di rilascio del codice dell'applicazione, come dovrebbe essere mostrato agli utenti.

Il valore è una stringa in modo da poter descrivere la versione dell'applicazione come una stringa .. o come qualsiasi altro tipo di identificatore di versione assoluto o relativo.

Come per Android: versionCode, il sistema non utilizza questo valore per scopi interni, oltre a consentire alle applicazioni di visualizzarlo agli utenti. I servizi di pubblicazione possono anche estrarre il valore android: versionName per la visualizzazione agli utenti.

In genere, rilasciare la prima versione dell'applicazione con versionCode impostato su 1, quindi aumentare monotonicamente il valore con ogni versione, indipendentemente dal fatto che la versione costituisca una versione principale o secondaria. Ciò significa che il valore android: versionCode non ha necessariamente una forte somiglianza con la versione di rilascio dell'applicazione che è visibile all'utente (vedi android: versionName, di seguito). Le applicazioni e i servizi di pubblicazione non devono mostrare questo valore di versione agli utenti.


5

È infatti basato su versionCode e non su versionName. Tuttavia, ho notato che cambiare il versionCode in AndroidManifest.xml non era sufficiente con Android Studio - Gradle build system. Ho dovuto cambiarlo in build.gradle.


5

Codice versione Rappresenta la versione del tuo codice, verifica il sistema operativo Android per l'aggiornamento utilizzando questa variabile se questo codice è vecchio o nuovo.

Nome versione Rappresenta il nome della versione nel formato-

(Maggiore). (Minore). (Punto)

String, utilizzata solo per stringhe leggibili, dal sistema operativo è stato utilizzato il codice della versione funzionalmente.


5

Codice versione : è un numero intero positivo utilizzato per il confronto con altri codici versione. Non è mostrato all'utente, è solo per la tenuta dei registri in un certo senso. Puoi impostarlo su qualsiasi numero intero che ti piace, ma è consigliabile aumentarlo linearmente per le versioni successive.

Nome versione : questa è la stringa di versione visualizzata dall'utente. Non viene utilizzato per confronti interni o altro, è solo per gli utenti.

Ad esempio : supponi di rilasciare un'app, il suo versionCode iniziale potrebbe essere 1 e versionName potrebbe anche essere 1. Una volta apportate alcune piccole modifiche all'app e desideri pubblicare un aggiornamento, imposti versionName su "1.1" (poiché le modifiche non sono importanti) mentre logicamente il tuo versionCode dovrebbe essere 2 (indipendentemente dalle dimensioni delle modifiche).

Supponiamo che in un'altra condizione rilasci una versione completamente rinnovata della tua app, puoi impostare versionCode e versionName su "2".

Spero che aiuti.

Puoi leggere di più qui


0

Dato un numero di versione MAJOR.MINOR.PATCH, incrementare:


  • MAJOR versione quando apporti modifiche API incompatibili,
  • Versione MINORE quando si aggiunge funzionalità in modo compatibile con le versioni precedenti e
  • Versione PATCH quando si apportano correzioni di bug compatibili con le versioni precedenti.

Codice versione e Nome versione

Come forse saprai, su Android devi definire due campi versione per un'app: il codice versione (android: versionCode) e il nome della versione (android: versionName). Il codice versione è un valore intero incrementale che rappresenta la versione del codice dell'applicazione. Il nome della versione è un valore stringa che rappresenta il nome della versione "descrittiva" visualizzato per gli utenti.


0

La risposta di Tanoh potrebbe usare alcuni chiarimenti. VersionCode è l'equivalente di un numero di build. Quindi in genere un'app passerà attraverso molte iterazioni prima del rilascio. Alcune di queste iterazioni possono arrivare al Google Play Store sotto forma di versioni alfa, beta e effettive. Ogni iterazione successiva deve avere un versionCode incrementato. Tuttavia, in genere si aumenta il versionName solo tra le versioni pubbliche. Entrambi i numeri sono significativi. I tuoi utenti devono sapere se la versione che hanno sul telefono è la più recente o meno (versionName) e i sistemi Play Store e CI come bitrise si basano e / o aggiornano il numero di build (versionCode)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.