Что такое версия Android Bundle и код версии и как они соотносятся?
а) Что обозначает версия пакета Android и код версии?
б) В чем разница между версией пакета и кодом версии?
я) Предположим, у меня есть версия пакета 0.137
Как код версии относится к этому? Может код версии просто 137?
II) Что происходит, когда я выпускаю версию пакета 1.0
следующий? Могу ли я просто назвать код версии 10
?
в) Как они связаны? Как правильно нумеровать версии комплекта?
NB. Похоже, что нет источника, объясняющего разницу в поиске. Я до сих пор очень беспорядочно нумерую свои связки, но я хотел бы выяснить, как сделать это правильно.
Эти обозначения, как представляется, специфичны для Unity, но я не уверен, что понимаю, о чем эти параметры даже с этой страницы...
4 ответа
Там нет "версия пакета". Это термин 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.
У Unity есть ответ на странице "Руководство по настройке проигрывателя": http://docs.unity3d.com/Manual/class-PlayerSettings.html
Версия пакета : Указывает номер версии сборки пакета, который идентифицирует итерацию (выпущенную или невыпущенную) пакета. Версия указывается в общем формате строки, содержащей числа, разделенные точками (например, 4.3.2). (Это разделено между iOS и Android.)
Код версии пакета: внутренний номер версии. Этот номер используется только для определения того, является ли одна версия более новой, чем другая, причем более высокие числа указывают на более свежие версии. Это не номер версии, показанный пользователям; этот номер устанавливается атрибутом versionName. Значение должно быть задано как целое число, например "100". Вы можете определить его по своему усмотрению, если каждая последующая версия имеет большее число. Например, это может быть номер сборки. Или вы можете перевести номер версии в формате "xy" в целое число, кодируя "x" и "y" отдельно в нижнем и верхнем 16 битах. Или вы можете просто увеличить число на единицу каждый раз, когда выходит новая версия.
Это не касается непосредственно вопроса, но связано (и связано с ответом ArianJM).
Я пришел к этому вопросу в результате проблемы, с которой я только что загрузил новую версию в Amazon Appstore.
Содержимое упомянутой страницы руководства Unity от ArianJM изменилось и (по крайней мере для версии 5.4) больше не содержит никакой информации о версии пакета или кода версии пакета.
В Unity 5.4:
Версия Bundle теперь является версией. Это поле идентифицируется Amazon Appstore как Имя версии.
Код Версии Пакета по-прежнему является Кодом Версии Пакета. Это поле идентифицируется Amazon Appstore как код версии. В этом поле разрешены только цифры.
Я нахожусь в процессе загрузки новой версии в Amazon Appstore, и хотя я обновил версию в Unity до версии 1.1, код версии пакета не был обновлен и в результате был отклонен Amazon Appstore, поскольку он был таким же, как и предыдущий Bundle Version Code (Код версии в Amazon Appstore).
С тех пор я обновил код версии пакета в Unity - но не смог обновить его до 1.1 или 1_1, потому что поле строго числовое - и поэтому вместо этого обновил его до 2.
Что, я считаю, подводит нас к полному кругу одной части первоначального вопроса: существует ли правильный способ нумерации версий комплекта?
Хотя произвольное изменение его на 2 в моем случае явно не является большой схемой - оно отличается от предыдущего и превышает его, и, как таковое, работает.
Это не очень сложный план, но отсутствие текущей документации Unity по этим полям - и похожие, но разные имена полей между Unity и Amazon Appstore, по-видимому, приводят к этим специальным решениям.
У меня был случайный длинный номер в коде версии в Unity 2480382 или аналогичный, и я изменил его на номер 3, такой же, как номер версии приложения, и Google Play принял его, поэтому я думаю, что сохранение того же номера было бы безопасно и постарайтесь не называть версии как 2.1.2, так как они добавляют дополнительные 0, и выдает ошибку, что ваш APK высокий и т. д., поэтому лучше оставить его как 1, 2, 3