Что такое версия Android Bundle и код версии и как они соотносятся?
a) Что означает версия пакета Android и код версии?
b) В чем разница между версией пакета и кодом версии?
i) Предположим, что у меня есть версия пакета 0.137
, как код версии относится к этому? Может ли код версии быть 137?
ii) Что происходит, когда я выпускаю версию пакета 1.0
next? Могу ли я просто вызвать код версии 10
?
c) Как они соотносятся? Какой правильный путь для номера версий пакета?
N.B. Кажется, что источник не объясняет разницу в поиске. Я до сих пор очень бессознательно пронумеровал свои связки, но я хотел бы выяснить, как это сделать правильно.
Эти обозначения, по-видимому, специфичны для Unity, но я не уверен, что я понимаю, что параметры даже о том, что с этой страницы...
Ответы
Ответ 1
Нет версии пакета. Это термин iOS/Mac. Встроенные приложения для Android называются пакетами.
Android имеет два места, где указан вариант: имя версии (android:versionName
в манифесте) и код версии (android:versionCode
). Они не должны быть сосланы, но на практике они обычно бывают. Google Market использует код версии (не имя), когда вы публикуете обновление, чтобы убедиться, что ваше обновление прошло позже опубликованного пакета.
Название версии - это то, что видят конечные пользователи. Нет никаких ограничений на его формат; это строка с бесплатным текстом, хотя подавляющее большинство приложений придерживаются шаблонов 1.2 или 1.2.3.
То, как вы пересобираете имя версии и код версии, зависит от вас. Вы можете использовать последовательные коды версий или использовать формулу major*10000 + minor*100 + build
- то, что Google делает со своими приложениями, так что v. 4.10.3 будет иметь код 41003.
Ответ 2
Unity имеет ответ на странице "Руководство по настройкам проигрывателя": http://docs.unity3d.com/Manual/class-PlayerSettings.html
-
Версия пакета: Указывает номер версии сборки пакета, который идентифицирует итерацию (освобожденную или невыпущенную) расслоение. Версия указана в общем формате строки содержащие числа, разделенные точками (например, 4.3.2). (Это общий доступ между iOS и Android.)
-
Код версии пакета: Внутренний номер версии. Этот номер используется только для определения того, является ли одна версия более поздней, чем другой, с более высокими номерами, указывающими более поздние версии. Это а не номер версии, показанный пользователям; это число устанавливается атрибут versionName. Значение должно быть задано как целое число, например "100". Вы можете определить его, как хотите, до тех пор, пока каждый последующий версия имеет большее число. Например, это может быть номер сборки. Или вы можете перевести номер версии в формате "x.y" на целое число путем кодирования "x" и "y" отдельно в нижнем и верхнем 16 битах. Или вы можете просто увеличить число на каждый каждый раз, когда новая версия.
Ответ 3
Это напрямую не касается вопроса, а связано (и связано с ответом ArianJM).
Я пришел к этому вопросу в результате проблемы, с которой я только что загрузил новую версию в App Store Amazon.
Содержимое на странице руководства Unity Manual от ArianJM изменилось и (по крайней мере, для версии 5.4) больше не содержит информации о версии Bundle или Bundle Version Code.
В Unity 5.4:
Версия Bundle теперь Версия. Это поле идентифицируется Амазонским Appstore как Имя версии.
Код версии Bundle по-прежнему Код версии пакета. Это поле идентифицированный Амазонским Appstore как Код версии. Это поле допускает только числа.
Я загружаю новую версию в App Store Amazon и хотя я обновил версию в Unity до 1.1, код версии Bundle не был обновлен и в результате был отклонен App Store Амазонки, потому что это было то же самое как предыдущий код версии Bundle (код версии в App Store Amazon).
С тех пор я обновил код версии Bundle в Unity, но не смог обновить его до версии 1.1 или 1_1, потому что поле строго числовое - и поэтому вместо этого оно обновлено до 2.
Который, я считаю, приносит нам полный круг к одной части исходного вопроса:
Есть ли правильный способ для номера версий пакета?
Хотя произвольное изменение его на 2 в моем случае явно не очень похоже на схему - оно и другое и выше предыдущего, и как таковое работает.
Это не очень важный план, но отсутствие текущей документации Unity, обращаясь к этим полям, - и аналогичные имена между Unity и Amazon Appstore, похоже, приводят к этим ad-hoc решениям.