Разница между версией Xcode (CFBundleShortVersionString) и сборкой (CFBundleVersion)

App Target Summary

В Xcode 4 я вижу это для моего целевого резюме:

Вход "Версия" соответствует CFBundleShortVersionString в файле info.plist, а вход "Build" соответствует CFBundleVersion.

Какая разница между этими двумя? Я вижу, что многие люди в Интернете хотят поставить одинаковое значение для обоих, и мое подозрение в том, что для обратной совместимости.

У меня есть два вопроса:

1) Если бы я начинал с нуля, какова была бы лучшая практика для версии вашего приложения?

2) Во всех предыдущих выпусках моего приложения я использовал CFBundleVersion. Чтобы не испортить процесс обновления, должен ли я продолжать увеличивать CFBundleVersion так же, как я был, или можно ли переключиться на "правильный путь", если предположить, что он существует?

Ответ 1

Документ Apple "Ссылка на справочную информацию по информационным свойствам" говорит, что CFBundleShortVersionString представляет версию выпуска, тогда как CFBundleVersion представляет любую сборку, выпущенную или нет. Кроме того, CFBundleShortVersionString может быть локализован, хотя я не знаю, почему вы захотите, поскольку они говорят, что предполагается, что это "строка, состоящая из трех целых чисел, разделенных периодом". Для сборки релиза было бы разумно сделать оба числа одинаковыми. Для сборки разработки вы можете добавить что-то еще к CFBundleVersion, возможно, к другой точке и целому числу.

Ответ 2

В вопрос JWWalker о том, почему вы хотите локализовать CFBundleShortVersionString, это будет десятичный разделитель. Например, в местах, где десятичный разделитель фактически является запятой, версия "1.5" будет "1,5".

Ответ 3

Быстрое исправление:

Просто добавьте CFBundleShortVersionString в файл plist и отредактируйте свою версию.

  • Выясните InfoPlist.strings
  • Выделите его и вставьте код ниже (предполагая его в режиме исходного кода)

{ "CFBundleShortVersionString" = "1.1";}

  1. Измените 1.1 на то, что было в вашей новой версии.
  2. Постройте и отправьте без дополнительной ошибки!

enter image description here

Ответ 4

См. документацию Apple по загрузке исполняемых файлов.

Версии и сборки нумерации: iTunes Connect извлекает свой предварительный номер версии и номер сборки из двоичного. Номер предварительной версии - это версия Xcode номер или строку "Bundle version string, short" в Info.plist. Номер сборки - это номер сборки Xcode, или "Bundle version", ключ в Info.plist. Номер предварительной версии и номер сборки будет отображаться на вкладке "Предварительное предложение", как описано в разделе "Просмотр сборки".

Загрузка двоичного файла для приложения