Skip to content

Android SDK: невозможность контролировать идентификатор версии приложения (versionName(versionCode)) в аудитории рассылок #209

Description

@GorbunovV

Здравствуйте.

Столкнулись с ограничением Android SDK при работе с мобильными пуш-рассылками и хотели бы попросить доработку.

Проблема

Android SDK автоматически формирует идентификатор версии приложения как versionName(versionCode), считывая значения из PackageInfo. У нас в CI каждому пайплайну присваивается уникальный versionCode (формируется как pipeline_id + константа), поэтому все тестовые и промежуточные сборки одной маркетинговой версии попадают в Mindbox как отдельные записи.

В интерфейсе выбора аудитории рассылки это выглядит так (одна версия 4.5.0 → десятки строк):

any.app.identifier/1.0.0(1)
any.app.identifier/1.0.0(2)
any.app.identifier/1.0.0(3)

Под одну версию набирается 20-30 записей. Это сильно затрудняет выбор нужной (продовой) сборки при отправке пушей и захламляет список.

Причина

Публичный MindboxConfiguration.Builder не предоставляет способа переопределить или урезать это значение — доступны только domain, endpointId, subscribeCustomerIfCreated, shouldCreateCustomer, previousInstallId, previousUuid. Значение версии собирается внутри SDK и не поддаётся контролю со стороны интегратора.

Что мы уже рассматривали

Мы понимаем, что можем развести прод и не-прод сборки по разным endpointId (отдельный эндпоинт под тестовые сборки) и таким образом убрать тестовый шум из продового списка. Но это всё равно неудобно: требует отдельного эндпоинта и его сопровождения, отдельной конфигурации на стороне приложения и CI, и не решает саму суть — отсутствие контроля над тем, как SDK репортит версию. Хотелось бы иметь возможность управлять этим напрямую, а не обходить через инфраструктуру.

Запрос (в порядке предпочтения)

  1. Добавить в MindboxConfiguration.Builder опциональное поле для явного указания версии приложения (appVersion / applicationVersion), с зеркальным полем в InitializationData React Native-обёртки (mindbox-sdk). Текущее авто-определение из PackageInfo оставить поведением по умолчанию.
  2. Либо добавить флаг, заставляющий SDK репортить только versionName без versionCode.
  3. Либо на стороне админки дать возможность скрывать/объединять/исключать версии из списка выбора аудитории рассылки.

Предпочтительны пункты 1-2 (уровень SDK). Пункт 1 закрыл бы проблему полностью: мы бы сами решали, какую строку версии сообщать.

Подскажите, пожалуйста, есть ли уже такая возможность, которую мы упустили, и если нет — реально ли это запланировать.

Спасибо.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions