версіяCode vs versionName в Android Manifest


223

У мене був додаток на ринку Android з кодом версії = 2 та назвою версії = 1.1

Однак, оновлюючи його сьогодні, я змінив код версії = 3 у маніфесті, але помилково змінив назву версії на 1.0.1 та завантажив apk на ринок.

Тепер користувачі мого додатка отримають сповіщення про оновлення на своїх телефонах чи ні? Або я повинен переробити процес ще раз?


1
спробуйте це посилання, воно допоможе вам .. " developer.android.com/tools/publishing/… "
MPG

Вони повинні, оскільки ви збільшували код версії. Теоретично те, що використовується як маркер оновлення.
superUser

@ user838522 Ви можете, будь ласка, позначити найбільш обрану відповідь як обрану відповідь?
xarlymg89

@ CarlosAlbertoMartínezGadea: user838522 востаннє бачив у 2013 році
серв-інк

Відповіді:


610

Довідкова посилання

android: versionCode

Внутрішній номер версії. Цей номер використовується лише для того, щоб визначити, чи є одна версія пізнішою за іншу, а більші числа вказують на новіші версії. Це не номер версії, показаний користувачам; це число встановлюється атрибутом versionName. Значення повинно бути встановлено як ціле число, наприклад "100". Ви можете визначити його як завгодно, якщо кожна наступна версія має більшу кількість. [...]

android: versionName

Ім'я версії, показане користувачам. Цей атрибут можна встановити як необроблений рядок або як посилання на рядовий ресурс. Рядок не має іншої мети, ніж відображатися користувачам. Атрибут versionCode містить значне число версії, яке використовується внутрішньо.

Читаючи, що цілком зрозуміло, що versionName - це лише те, що показано користувачеві, версія version - це важливе значення. Просто продовжуйте її збільшувати, і все повинно бути добре.


1
Це означає, що між ними немає математичного зв’язку. Є це?
Вініл Чандран

Це пояснює мовчазні оновлення, які, схоже, є тією ж версією.
Е. Сундін

11
Лише додати примітку: Найбільша цінність, яку Google Play надає для версіїКод, є 2100000000
Atul

1
Чи обов'язково зберігати різницю коду версії між оновленим vesrion та попередньою версією додатка в магазині Play 1?
Sivaram Boina

@sivaram Ні. Зовсім не.
Невідомо

30

Не потрібно змінювати свої кроки. Коли ви збільшували VersionCode, це означає, що ваша програма вже оновлена. VersionName - це лише рядок, який подається користувачеві для зручності читання. Google play не вживає жодних дій залежно від VersionName.


9

Код версії використовується в ігровому магазині Google для нового оновлення. І назва версії відображається користувачеві. Якщо ви збільшили код версії, оновлення буде видимим для всіх користувачів.

Для отримання більш детальної інформації ви дасте 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. Мені потрібно було змінити це в build.gradle.


5

Код версії представляє версію свого коду, а Android OS перевіряє на оновлення, використовуючи цю змінну, чи цей код старий чи новий.

Назва версії Представляє назву версії у форматі-

(Мажор). (Незначний). (Пункт)

В ОС використовується функціональний код версії, що використовується лише для читаного рядка.


4

Код версії - це натуральне число, яке використовується для порівняння з іншими кодами версій. Це не показано користувачеві, це просто для ведення записів певним чином. Ви можете встановити його на будь-яке ціле число, яке вам подобається, але рекомендується лінійно збільшувати його для послідовних версій.

Назва версії - це рядок версії, яку бачить користувач. Він не використовується для внутрішніх порівнянь чи чогось іншого, це просто бачать користувачі.

Наприклад : Скажіть, що ви випускаєте додаток, його початкова версіяCode може бути 1, а versionName також може бути 1. Після того, як ви внесете невеликі зміни в додаток і хочете опублікувати оновлення, ви встановите для versionName значення "1,1" (оскільки зміни не є основними), але логічно ваш versionCode повинен бути 2 (незалежно від розміру змін).

Скажімо, в іншій умові ви випустите повністю оновлену версію свого додатка, ви можете встановити versionCode та versionName на "2".

Сподіваюся, що це допомагає.

Більше про це можна прочитати тут


0

Враховуючи номер версії MAJOR.MINOR.PATCH, збільшуйте:


  • ОСНОВНА версія, коли ви вносите несумісні зміни API,
  • МІНОРОЗНА версія, коли ви додаєте функціональність у сумісному сумісному режимі, і
  • Версія PATCH, коли ви робите назад сумісні виправлення помилок.

Код версії та назва версії

Як ви можете знати, на android ви повинні визначити два поля версії програми: код версії (android: versionCode) та ім’я версії (android: versionName). Код версії - це додаткове ціле значення, яке представляє версію коду програми. Назва версії - це рядкове значення, яке представляє "дружнє" ім'я версії, що відображається користувачам.


0

Відповідь від Тано може використовувати деякі роз'яснення. VersionCode - еквівалент числа збірки. Таким чином, програма зазвичай пройде через багато ітерацій перед випуском. Деякі з цих ітерацій можуть перейти до магазину Google Play у вигляді альфа-бета-версії та фактичних версій. Кожна наступна ітерація повинна мати нарощений versionCode. Однак, як правило, ви збільшуєте версіюName лише після публічних версій. Обидві цифри є значущими. Ваші користувачі повинні знати, чи є у них найновіша версія телефону (версіяName), і системи Play Store та CI, такі як бітрейз, покладаються на та / або оновлять номер збірки (versionCode)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.