versionCode vs versionName w Android Manifest


223

Miałem swoją aplikację na Android Market z kodem wersji = 2 i nazwą wersji = 1.1

Jednak podczas aktualizacji dzisiaj zmieniłem kod wersji = 3 w manifeście, ale przez pomyłkę zmieniłem nazwę mojej wersji na 1.0.1 i przesłałem apk na rynek.

Czy użytkownicy mojej aplikacji otrzymają powiadomienie o aktualizacji na swoich telefonach, czy nie? Czy powinienem ponownie wykonać ten proces?


1
spróbuj tego linku, to ci pomoże .. " developer.android.com/tools/publishing/… "
MPG

Powinny one, w miarę zwiększania kodu wersji. Który teoretycznie jest używany jako marker aktualizujący.
superUser

@ user838522 czy mógłbyś zaznaczyć najczęściej głosowaną odpowiedź jako wybraną odpowiedź?
xarlymg89

@ CarlosAlbertoMartínezGadea: użytkownik838522 był ostatnio widziany w 2013 r.
serv-inc

Odpowiedzi:


610

Link referencyjny

android: versionCode

Wewnętrzny numer wersji. Liczba ta służy wyłącznie do ustalenia, czy jedna wersja jest nowsza od innej, przy czym wyższe liczby wskazują nowsze wersje. To nie jest numer wersji pokazywany użytkownikom; liczba ta jest ustawiana przez atrybut versionName. Wartość musi być ustawiona jako liczba całkowita, na przykład „100”. Możesz go zdefiniować w dowolny sposób, o ile każda kolejna wersja ma wyższy numer. [...]

Android: nazwa wersji

Nazwa wersji wyświetlana użytkownikom. Ten atrybut można ustawić jako nieprzetworzony ciąg lub jako odwołanie do zasobu ciąg. Ciąg nie ma innego celu niż wyświetlanie użytkownikom. Atrybut versionCode przechowuje znaczący numer wersji używany wewnętrznie.

Czytając, że jest całkiem jasne, że versionName jest tylko czymś, co jest pokazywane użytkownikowi, liczy się versionCode. Po prostu zwiększaj go i wszystko powinno być dobrze.


1
Oznacza to brak matematycznej relacji między nimi. Czy to jest
Vinil Chandran

To wyjaśnia ciche aktualizacje, które wydają się być tą samą wersją.
E. Sundin,

11
Tylko, aby dodać notatkę: największą wartością, jaką Google Play pozwala na wersję Kod jest 2100000000
Atul

1
Czy utrzymywanie różnicy kodu wersji między zaktualizowaną wersją a poprzednią wersją aplikacji w sklepie Play wynosi 1?
Sivaram Boina,

@ sivaram Nie. Wcale nie.
Nieznany

30

Nie musisz cofać kroków. Zwiększenie kodu wersji oznacza, że ​​aplikacja została już zaktualizowana. VersionName to tylko ciąg znaków, który jest prezentowany użytkownikowi w celu jego czytelności. Google Play nie podejmuje żadnych działań w zależności od VersionName.



6

Przedstawię wam moją interpretację jedynej dokumentacji, jaką mogę znaleźć na ten temat.

„na przykład, aby sprawdzić relację uaktualnienia lub obniżenia”. <- Możesz obniżyć wersję aplikacji.

„powinieneś upewnić się, że każda kolejna wersja aplikacji ma większą wartość. System nie wymusza takiego zachowania” <- Liczba naprawdę powinna wzrosnąć, ale nadal możesz obniżyć wersję aplikacji.

android: versionCode - Wartość całkowita reprezentująca wersję kodu aplikacji w stosunku do innych wersji. Wartość jest liczbą całkowitą, dzięki czemu inne aplikacje mogą ją programowo oceniać, na przykład w celu sprawdzenia relacji uaktualnienia lub obniżenia. Możesz ustawić tę wartość na dowolną liczbę całkowitą, którą chcesz, jednak upewnij się, że każda kolejna wersja aplikacji używa większej wartości. System nie wymusza takiego zachowania, ale zwiększanie wartości przy kolejnych wydaniach jest normatywne. Zazwyczaj wypuszczasz pierwszą wersję aplikacji z wersją codeCode ustawioną na 1, a następnie monotonicznie zwiększasz wartość z każdą wersją, niezależnie od tego, czy jest to wydanie główne, czy mniejsze. Oznacza to, że Android: wartość versionCode niekoniecznie ma silne podobieństwo do wersji wydania aplikacji, która jest widoczna dla użytkownika (patrz android: wersjaNazwa poniżej). Aplikacje i usługi publikowania nie powinny wyświetlać użytkownikom tej wartości wersji.


2
Czy mogę to po prostu zostawić? Ponieważ myślę, że system Android sprawdza aktualizacje aplikacji na podstawie kodu wersji zamiast numeru wersji. Popraw mnie, jeśli się mylę.
user838522,

5

android: versionCode - Wartość całkowita reprezentująca wersję kodu aplikacji w stosunku do innych wersji.

Wartość jest liczbą całkowitą, dzięki czemu inne aplikacje mogą ją programowo oceniać, na przykład w celu sprawdzenia relacji uaktualnienia lub obniżenia. Możesz ustawić tę wartość na dowolną liczbę całkowitą, którą chcesz, jednak upewnij się, że każda kolejna wersja aplikacji używa większej wartości. System nie wymusza takiego zachowania, ale zwiększanie wartości przy kolejnych wydaniach jest normatywne.

android: versionName - wartość ciągu reprezentująca wersję wydania kodu aplikacji, tak jak powinna być pokazywana użytkownikom.

Wartość jest ciągiem, dzięki czemu można opisać wersję aplikacji jako ciąg .. lub jako dowolny inny bezwzględny lub względny identyfikator wersji.

Podobnie jak w Androidzie: versionCode, system nie używa tej wartości do celów wewnętrznych innych niż umożliwienie aplikacjom wyświetlania jej użytkownikom. Usługi publikowania mogą również wyodrębnić wartość Androida: versionName w celu wyświetlenia użytkownikom.

Zazwyczaj wypuszczasz pierwszą wersję aplikacji z wersją codeCode ustawioną na 1, a następnie monotonicznie zwiększasz wartość z każdym wydaniem, niezależnie od tego, czy wydanie stanowi wydanie główne, czy niewielkie. Oznacza to, że wartość android: versionCode niekoniecznie ma silne podobieństwo do wersji wydania aplikacji, która jest widoczna dla użytkownika (patrz android: versionName poniżej). Aplikacje i usługi publikowania nie powinny wyświetlać użytkownikom tej wartości wersji.


5

Rzeczywiście opiera się on na versionCode, a nie na versionName. Zauważyłem jednak, że zmiana kodu wersji w AndroidManifest.xml nie wystarczyła w Android Studio - system kompilacji Gradle. Musiałem to zmienić w build.gradle.


5

Kod wersji Reprezentuje wersję Twojego kodu, system operacyjny Android sprawdza dostępność aktualizacji, używając tej zmiennej, czy ten kod jest stary czy nowy.

Nazwa wersji Reprezentuje nazwę wersji w formacie

(Major). (Minor). (Punkt)

Ciąg, używany tylko do odczytu ciągu, funkcjonalnie kod wersji został użyty przez system operacyjny.


4

Kod wersji - dodatnia liczba całkowita używana do porównania z innymi kodami wersji. Nie jest pokazywany użytkownikowi, służy tylko do prowadzenia dokumentacji. Możesz ustawić dowolną liczbę całkowitą, którą lubisz, ale sugeruje się liniowe zwiększanie jej dla kolejnych wersji.

Nazwa wersji - jest to ciąg wersji widziany przez użytkownika. Nie służy do wewnętrznych porównań ani niczego, tylko użytkownicy mogą to zobaczyć.

Na przykład : powiedzmy, że wypuszczacie aplikację, jej początkowa wersja Kod może mieć wartość 1, a nazwa wersji może również wynosić 1. Po wprowadzeniu niewielkich zmian w aplikacji i chęci opublikowania aktualizacji, należy ustawić nazwę wersji na „1.1” (ponieważ zmiany nie są duże), a logicznie kod wersji powinien wynosić 2 (niezależnie od wielkości zmian).

Powiedzmy, że w innym stanie wypuszczasz całkowicie zmienioną wersję swojej aplikacji, możesz ustawić versionCode i versionName na „2”.

Mam nadzieję, że to pomaga.

Możesz przeczytać więcej na ten temat tutaj


0

Biorąc pod uwagę numer wersji MAJOR.MINOR.PATCH, zwiększ:


  • Wersja MAJOR, gdy dokonujesz niezgodnych zmian API,
  • Wersja MINOR, gdy dodajesz funkcjonalność w sposób kompatybilny wstecz, oraz
  • Wersja PATCH po dokonaniu poprawek błędów kompatybilnych wstecz.

Kod wersji i nazwa wersji

Jak zapewne wiesz, w Androidzie musisz zdefiniować dwa pola wersji dla aplikacji: kod wersji (android: kod wersji) i nazwę wersji (android: nazwa wersji). Kod wersji jest przyrostową wartością całkowitą reprezentującą wersję kodu aplikacji. Nazwa wersji to wartość ciągu reprezentująca „przyjazną” nazwę wersji wyświetlaną użytkownikom.


0

Odpowiedź od Tanoh mogłby wyjaśnień. VersionCode jest odpowiednikiem numeru kompilacji. Tak więc aplikacja zazwyczaj przechodzi wiele iteracji przed wydaniem. Niektóre z tych iteracji mogą trafić do sklepu Google Play w postaci wersji alfa, beta i rzeczywistych. Każda kolejna iteracja musi mieć zwiększony kod wersji. Jednak zwykle nazwa wersji jest zwiększana tylko między wydaniami publicznymi. Obie liczby są znaczące. Użytkownicy muszą wiedzieć, czy wersja, którą mają na telefonie, jest najnowsza (wersjaName), a systemy Play Store i systemy CI, takie jak bitrise, polegają na numerze kompilacji i / lub aktualizują go (wersjaKod)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.