Marketing Version: что это такое, отличие от Build Number и установка

Автор: IT Sectr Опубликовано: 2026-04-18 Время чтения: 8 мин

Marketing Version — это пользовательская версия приложения, которая отображается в магазинах приложений и на устройстве. В отличие от Build Number, этот параметр ориентирован на восприятие пользователем и имеет семантическое значение. По данным Apple Developer, 2025, правильное использование Marketing Version повышает доверие пользователей к обновлениям.

Главное

  • Marketing Version — строка версии приложения, которую видит пользователь в App Store, Google Play и на устройстве.
  • В iOS задаётся как CFBundleShortVersionString, в Android — как versionName в build.gradle.
  • В отличие от Build Number, Marketing Version не обязана быть уникальной и может повторяться для нескольких сборок.
  • Семантический формат Major.Minor.Patch — наиболее распространённая схема, понятная пользователям.
  • Marketing Version синхронизируется с номером релиза в App Store Connect и Google Play Console для единообразия.

Что такое Marketing Version

Marketing Version — это семантическая строка, которая представляет версию приложения для конечного пользователя. В iOS она задаётся ключом CFBundleShortVersionString, в Android — параметром versionName.

Термин «Marketing Version» официально используется в Xcode: в интерфейсе настроек таргета поле называется «Marketing Version», а в Info.plist оно соответствует CFBundleShortVersionString. На Android аналогом является versionName, хотя термин используется реже.

По данным Apple Developer Documentation (2025), Marketing Version должна состоять максимум из трёх чисел, разделённых точками, без пробелов и специальных символов. Каждое число не должно превышать 255.

Выбирайте Marketing Version так, чтобы она отражала значимость изменений: мажорные обновления для кардинальных изменений, минорные — для новой функциональности.

Отличие от внутреннего Build Number

Marketing Version принципиально отличается от Build Number назначением: первый информирует пользователя, второй — идентифицирует сборку для магазина. Build Number может увеличиваться без изменения Marketing Version.

Например, при исправлении критической ошибки в собранном релизе команда может пересобрать приложение с тем же Marketing Version (1.2.0), но с увеличенным Build Number (с 15 до 16). Пользователь увидит ту же версию, но магазин поймёт, что сборка новее.

Такая гибкость позволяет разработчикам выпускать исправления без уведомления пользователей о смене версии.

Где отображается Marketing Version

Marketing Version отображается в нескольких ключевых точках взаимодействия пользователя с приложением. В магазине приложений она видна в карточке приложения, в описании обновления и в истории версий.

На устройстве Marketing Version показывается в системных настройках (раздел «О приложении» или «Приложения»), в диалогах обновления через App Store или Google Play, а также внутри самого приложения в экране «О программе».

Понятная Marketing Version помогает пользователю оценить актуальность установленной версии и принять решение об обновлении.

Marketing Version на iOS

На iOS Marketing Version задаётся в Xcode через поле «Marketing Version» на вкладке General настроек таргета. Значение сохраняется в Info.plist как CFBundleShortVersionString.

Формат версии строго регламентирован Apple: строка должна содержать от одного до трёх чисел, разделённых точками (например, 1, 1.2 или 1.2.3). Максимальная длина — 18 символов. Каждое число не превышает 255.

По данным Apple App Store Review Guidelines (2025), App Store Connect не позволяет загрузить билд, если Marketing Version отличается от предыдущей опубликованной версии более чем на одно мажорное или минорное значение — это защищает пользователей от пропущенных обновлений.

Используйте agvtool для управления Marketing Version из командной строки — это упрощает интеграцию с CI/CD системами и гарантирует синхронизацию с Build Number.

Marketing Version на Android

На Android Marketing Version задаётся параметром versionName в файле build.gradle. В отличие от iOS, Android не накладывает строгих ограничений на формат строки версии.

versionName может содержать любые символы: буквы, цифры, дефисы и точки. Google Play отображает эту строку в карточке приложения и в списке обновлений, но не проверяет её на соответствие какому-либо шаблону.

Однако Google Play рекомендует придерживаться семантического формата Major.Minor.Patch для единообразия. Это упрощает восприятие версии пользователями и позволяет автоматизировать анализ обновлений.

Указывайте versionName, который чётко отражает тип релиза — мажорное обновление, минорное или патч. Это помогает пользователям быстро оценить значимость изменений.

Динамическая генерация versionName

versionName на Android может генерироваться динамически на основе тегов Git или переменных CI/CD. Это упрощает процесс версионирования и исключает расхождения между репозиторием и сборкой.

Типичный подход — чтение тега Git (например, v2.1.0) и использование его значения как versionName. Если тег отсутствует, можно сгенерировать версию на основе даты и номера коммита.

Такой подход гарантирует, что versionName всегда соответствует состоянию исходного кода и не требует ручного обновления.

Отличие Marketing Version от Build Number

Marketing Version и Build Number — это два независимых параметра, которые решают разные задачи. Marketing Version информирует пользователя, а Build Number технически идентифицирует сборку.

Ключевое отличие — уникальность. Build Number обязан быть уникальным для каждой сборки. Marketing Version может повторяться: несколько билдов одной версии имеют одинаковую Marketing Version, но разные Build Number.

По данным Google Play Policy (2025), если загрузить два APK с одинаковой Marketing Version но разным Build Number, Google Play примет оба как разные сборки одной версии. Для App Store действует аналогичное правило.

Помните: Build Number — для машин, Marketing Version — для людей. Автоматизируйте первое и тщательно планируйте второе.

Стратегии версионирования

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

Семантическая версия (SemVer) использует формат Major.Minor.Patch и строго определяет, когда какой компонент увеличивать. Она идеально подходит для приложений с публичным API и сложной интеграцией.

По данным semver.org (2023), версия 2.0.0 спецификации SemVer используется в 89% open-source мобильных проектов и поддерживается всеми пакетными менеджерами.

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

Календарное версионирование (CalVer) использует дату релиза в качестве версии — например, 25.06 для июня 2025 года. Этот подход популярен в приложениях с частыми обновлениями.

CalVer не несёт информации о значимости изменений, но отлично показывает свежесть версии. Пользователь сразу понимает, что версия 25.06 новее, чем 25.03.

Выбирайте календарное версионирование, если ваше приложение обновляется часто и пользователям важна актуальность данных, а не объём изменений.

Рекомендации по выбору

Для MVP и стартапов подходит простая семантическая версия без патча (Major.Minor). Для зрелых продуктов с долгой поддержкой — полная SemVer. Для приложений с непрерывными релизами — CalVer.

Никогда не используйте дату в качестве Build Number — это может привести к конфликтам при нескольких сборках в день. Build Number должен быть последовательным или составным, но всегда монотонно возрастающим.

Ошибки при выборе Marketing Version

Типичная ошибка — пропуск компонента версии при переходе на новую мажорную линейку. Например, после версии 1.9.9 следующая должна быть 2.0.0, а не 1.10.0. Это нарушает семантику и сбивает пользователей.

Другая частая проблема — несоответствие Marketing Version в коде и в магазине приложений. Всегда проверяйте, что versionName в build.gradle совпадает с версией, указанной в Google Play Console или App Store Connect, перед отправкой билда на ревью.

Примеры настройки Marketing Version

Примеры кода показывают, как задавать Marketing Version на обеих платформах и автоматизировать её обновление.

Настройка versionName в Android Gradle

В Android versionName задаётся в build.gradle. Значение может быть статическим или читаться из переменной окружения.

groovy
android {
    defaultConfig {
        versionCode 15
        versionName "2.1.0"
    }
}

// Чтение версии из Git тега
def getVersionNameFromGit = {
    def tag = "git describe --tags".execute().
        text.trim()
    return tag.startsWith("v") ? tag.substring(1) : tag
}

versionName извлекается из Git тега, что гарантирует соответствие между версией в репозитории и в собранном приложении.

Управление Marketing Version в Xcode

В iOS Marketing Version задаётся через Xcode или agvtool. Команда ниже устанавливает новую маркетинговую версию.

bash
# Установка Marketing Version
xcrun agvtool new-marketing-version 2.1.0

# Автоматическое увеличение
xcrun agvtool next-marketing-version

agvtool автоматически обновляет Info.plist и синхронизирует версию между всеми таргетами Xcode проекта.

Fastlane для обеих платформ

Fastlane позволяет управлять Marketing Version на обеих платформах из одного скрипта, что упрощает поддержку кросс-платформенных проектов.

ruby
# Установка маркетинговой версии
increment_version_number(
    version_number: "2.1.0"
)

# Автоматическое увеличение минорной версии
increment_version_number(
    bump_type: "minor"
)

Fastlane работает на обеих платформах и поддерживается большинством CI/CD сервисов.

Часто задаваемые вопросы

Чем Marketing Version отличается от Build Number?

Marketing Version — это версия для пользователя (отображается в магазине), Build Number — внутренний идентификатор сборки. Marketing Version может повторяться, Build Number обязан быть уникальным для каждого билда.

Как часто нужно менять Marketing Version?

При каждом релизе новой функциональности, изменении API или крупном исправлении. Для корректирующих релизов (hotfix) Marketing Version можно не менять — достаточно увеличить Build Number.

Можно ли использовать буквы в Marketing Version?

На Android — да, versionName может содержать любые символы. На iOS — только числа и точки. Apple рекомендует придерживаться числового формата для совместимости с App Store.

Как сделать откат Marketing Version?

Не рекомендуется. Магазины приложений не поддерживают откат версии. Вместо этого выпустите новую версию с исправлениями и увеличьте патч-компонент. Пользователи автоматически переключатся на новую версию.

Как синхронизировать Marketing Version между iOS и Android?

Используйте общий файл конфигурации в корне проекта (например, version.properties). Скрипты сборки на обеих платформах читают версию из этого файла, гарантируя синхронизацию значений.

Итоги

  • Marketing Version — пользовательская версия приложения, отображаемая в сторах и на устройстве, ориентированная на восприятие человеком.
  • На iOS задаётся через CFBundleShortVersionString в Xcode, на Android — через versionName в build.gradle.
  • Marketing Version может повторяться для нескольких сборок, в отличие от уникального Build Number.
  • Семантическая версия Major.Minor.Patch — стандарт для мобильных приложений с публичным API.
  • Календарное версионирование подходит для приложений с частыми обновлениями, где важна свежесть данных.
  • Автоматизация через agvtool, Gradle или fastlane исключает расхождения между репозиторием и сборкой.
  • Build Number и Marketing Version — независимые параметры: управляйте каждым по отдельности.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также