Здравствуйте.
Столкнулись с ограничением 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 репортит версию. Хотелось бы иметь возможность управлять этим напрямую, а не обходить через инфраструктуру.
Запрос (в порядке предпочтения)
- Добавить в MindboxConfiguration.Builder опциональное поле для явного указания версии приложения (appVersion / applicationVersion), с зеркальным полем в InitializationData React Native-обёртки (mindbox-sdk). Текущее авто-определение из PackageInfo оставить поведением по умолчанию.
- Либо добавить флаг, заставляющий SDK репортить только versionName без versionCode.
- Либо на стороне админки дать возможность скрывать/объединять/исключать версии из списка выбора аудитории рассылки.
Предпочтительны пункты 1-2 (уровень SDK). Пункт 1 закрыл бы проблему полностью: мы бы сами решали, какую строку версии сообщать.
Подскажите, пожалуйста, есть ли уже такая возможность, которую мы упустили, и если нет — реально ли это запланировать.
Спасибо.
Здравствуйте.
Столкнулись с ограничением Android SDK при работе с мобильными пуш-рассылками и хотели бы попросить доработку.
Проблема
Android SDK автоматически формирует идентификатор версии приложения как versionName(versionCode), считывая значения из PackageInfo. У нас в CI каждому пайплайну присваивается уникальный versionCode (формируется как pipeline_id + константа), поэтому все тестовые и промежуточные сборки одной маркетинговой версии попадают в Mindbox как отдельные записи.
В интерфейсе выбора аудитории рассылки это выглядит так (одна версия 4.5.0 → десятки строк):
Под одну версию набирается 20-30 записей. Это сильно затрудняет выбор нужной (продовой) сборки при отправке пушей и захламляет список.
Причина
Публичный MindboxConfiguration.Builder не предоставляет способа переопределить или урезать это значение — доступны только domain, endpointId, subscribeCustomerIfCreated, shouldCreateCustomer, previousInstallId, previousUuid. Значение версии собирается внутри SDK и не поддаётся контролю со стороны интегратора.
Что мы уже рассматривали
Мы понимаем, что можем развести прод и не-прод сборки по разным endpointId (отдельный эндпоинт под тестовые сборки) и таким образом убрать тестовый шум из продового списка. Но это всё равно неудобно: требует отдельного эндпоинта и его сопровождения, отдельной конфигурации на стороне приложения и CI, и не решает саму суть — отсутствие контроля над тем, как SDK репортит версию. Хотелось бы иметь возможность управлять этим напрямую, а не обходить через инфраструктуру.
Запрос (в порядке предпочтения)
Предпочтительны пункты 1-2 (уровень SDK). Пункт 1 закрыл бы проблему полностью: мы бы сами решали, какую строку версии сообщать.
Подскажите, пожалуйста, есть ли уже такая возможность, которую мы упустили, и если нет — реально ли это запланировать.
Спасибо.