versionCode vs versionName в манифесте Android


223

У меня было мое приложение на рынке Android с кодом версии = 2 и именем версии = 1.1

Однако, обновляя его сегодня, я изменил код версии = 3 в манифесте, но по ошибке изменил название своей версии на 1.0.1 и загрузил apk на рынок.

Теперь пользователи моего приложения получат уведомление об обновлении на своих телефонах или нет? Или я должен повторить процесс снова?


1
Попробуйте эту ссылку, это поможет вам .. " developer.android.com/tools/publishing/… "
MPG

Они должны, так как вы увеличили код версии. Который в теории является тем, который используется в качестве маркера обновления.
суперпользователь

@ user838522 не могли бы вы отметить наиболее проголосовавший ответ как выбранный ответ?
xarlymg89

@ CarlosAlbertoMartínezGadea: user838522 был в последний раз замечен в 2013
серв-ин

Ответы:


611

Ссылка Ссылка

андроид: VersionCode

Внутренний номер версии. Этот номер используется только для определения того, является ли одна версия более новой, чем другая, причем более высокие числа указывают на более свежие версии. Это не номер версии, показанный пользователям; этот номер устанавливается атрибутом versionName. Значение должно быть задано как целое число, например «100». Вы можете определить его по своему усмотрению, если каждая последующая версия имеет большее число. [...]

андроид: versionName

Имя версии показывается пользователям. Этот атрибут может быть установлен как необработанная строка или как ссылка на строковый ресурс. Строка не имеет другой цели, кроме как для отображения пользователям. Атрибут versionCode содержит значимый номер версии, используемый внутри.

Читая, что довольно ясно, что versionName - это просто то, что показывается пользователю, versionCode имеет значение. Просто продолжайте увеличивать его, и все должно быть хорошо.


1
Это означает отсутствие математической связи между ними. Это?
Винил Чандран

Это объясняет тихие обновления, которые, по-видимому, имеют ту же версию
Е. Сундин

11
Только для добавления заметки: наибольшее значение, которое Google Play допускает для versionCode, составляет 2100000000
Атул

1
Обязательно ли сохранять разность кода версии между обновленным vesrion и предыдущей версией приложения в магазине игр равной 1?
Сиварам Бойна

@sivaram Нет. Совсем нет.
Неизвестно

30

Не нужно поменять свои шаги. Поскольку вы увеличили свой VersionCode, это означает, что ваше приложение уже обновлено. VersionName - это просто строка, которая представляется пользователю для удобства чтения. Google play не предпринимает никаких действий в зависимости от VersionName.


9

Код версии используется Google Play Store для нового обновления. И название версии отображается для пользователя. Если вы увеличили код версии, обновление будет видно всем пользователям.

Для более подробной информации вы дадите 2 минуты чтения этой статьи https://developer.android.com/studio/publish/versioning.html


6

Я собираюсь дать вам свою интерпретацию единственной документации, которую я могу найти по этому вопросу.

«Например, чтобы проверить отношения обновления или понижения». <- Вы можете понизить версию приложения.

«вы должны убедиться, что в каждом последующем выпуске вашего приложения используется большее значение. Система не обеспечивает такое поведение» <- число действительно должно увеличиться, но вы все равно можете понизить версию приложения.

android: versionCode - целочисленное значение, представляющее версию кода приложения относительно других версий. Значение является целым числом, так что другие приложения могут его программно оценить, например, чтобы проверить отношения обновления или понижения. Вы можете установить значение на любое желаемое целое число, однако вы должны убедиться, что в каждом последующем выпуске вашего приложения используется большее значение. Система не применяет это поведение, но увеличение значения при последующих выпусках является нормативным. Как правило, вы выпускаете первую версию своего приложения с versionCode, установленным в 1, затем монотонно увеличиваете значение с каждым выпуском, независимо от того, является ли выпуск основным или второстепенным. Это значит что андроид: Значение versionCode не обязательно сильно напоминает версию выпуска приложения, которая видна пользователю (см. android: versionName, ниже). Приложения и службы публикации не должны отображать это значение версии для пользователей.


2
Так я могу просто оставить это на этом? Потому что я думаю, что система Android проверяет обновления приложений на основе кода версии, а не номера версии. Поправьте меня если я ошибаюсь.
user838522

5

android: versionCode - целочисленное значение, представляющее версию кода приложения относительно других версий.

Значение является целым числом, так что другие приложения могут его программно оценить, например, чтобы проверить отношения обновления или понижения. Вы можете установить значение на любое желаемое целое число, однако вы должны убедиться, что в каждом последующем выпуске вашего приложения используется большее значение. Система не применяет это поведение, но увеличение значения при последующих выпусках является нормативным.

android: versionName - строковое значение, представляющее версию выпуска кода приложения, как это должно быть показано пользователям.

Значение является строкой, так что вы можете описать версию приложения как строку .. или как любой другой тип абсолютного или относительного идентификатора версии.

Как и в случае android: versionCode, система не использует это значение для каких-либо внутренних целей, кроме как для того, чтобы приложения могли отображать его пользователям. Службы публикации также могут извлекать значение android: versionName для отображения пользователям.

Как правило, вы выпускаете первую версию своего приложения с versionCode, установленным в 1, затем монотонно увеличиваете значение с каждым выпуском, независимо от того, является ли выпуск основным или второстепенным. Это означает, что значение android: versionCode не обязательно сильно напоминает версию выпуска приложения, которая видна пользователю (см. Ниже android: versionName). Приложения и службы публикации не должны отображать это значение версии для пользователей.


5

Он действительно основан на versionCode, а не на versionName. Однако я заметил, что изменение версии кода в AndroidManifest.xml было недостаточно с Android Studio - системой сборки Gradle. Мне нужно было изменить это в build.gradle.


5

Версия кода представляет версию вашего кода, ОС Android проверяет наличие обновлений с помощью этой переменной, является ли этот код старым или новым.

Название версии Представляет название версии в формате

(Major). (Минор). (Точка)

Строка, используемая только для читаемой строки, функционально код версии использовался ОС.


5

Код версии - это положительное целое число, которое используется для сравнения с другими кодами версий. Это не показывается пользователю, это просто для ведения записей. Вы можете установить любое целое число, которое вам нравится, но предлагается, чтобы вы последовательно увеличивали его для последующих версий.

Имя версии - это строка версии, видимая пользователем. Он не используется для внутренних сравнений или чего-то еще, это просто для просмотра пользователями.

Например : скажем, вы выпускаете приложение, его начальный versionCode может быть 1, а versionName также может быть 1. После того, как вы внесете небольшие изменения в приложение и захотите опубликовать обновление, вы должны установить versionName на «1.1» (так как изменения не являются основными), хотя по логике ваш versionCode должен быть 2 (независимо от размера изменений).

Скажем, в другом состоянии вы выпускаете полностью обновленную версию своего приложения, вы можете установить versionCode и versionName на «2».

Надеюсь, это поможет.

Вы можете прочитать больше об этом здесь


0

Учитывая номер версии MAJOR.MINOR.PATCH, увеличьте:


  • ОСНОВНАЯ версия, когда вы делаете несовместимые изменения API,
  • Версия MINOR, когда вы добавляете функциональность обратно совместимым способом, и
  • Версия PATCH, когда вы делаете обратно совместимые исправления ошибок.

Код версии и название версии

Как вы, возможно, знаете, на Android вы должны определить два поля версии для приложения: код версии (android: versionCode) и имя версии (android: versionName). Код версии - это инкрементное целочисленное значение, которое представляет версию кода приложения. Имя версии - это строковое значение, которое представляет «дружественное» имя версии, отображаемое для пользователей.


0

Ответ от Тано может использовать некоторые разъяснения. VersionCode является эквивалентом номера сборки. Поэтому обычно приложение проходит много итераций перед выпуском. Некоторые из этих итераций могут попасть в магазин Google Play в виде альфа, бета и реальных выпусков. Каждая последующая итерация должна иметь увеличенный код версии. Однако, как правило, вы увеличиваете versionName только между публичными выпусками. Оба числа значимы. Ваши пользователи должны знать, является ли последняя версия их телефона последней версией (versionName), а системы Play Store и CI, такие как bitrise, используют и / или обновляют номер сборки (versionCode).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.