При разработке мобильных приложений на платформе 1С и интеграции с сервисами RuStore, многие разработчики сталкиваются с критической ошибкой сборки, связанной с недоступностью картографической библиотеки ru.mail.maps:mapkit:1.1.33. Эта проблема вызывает прерывание процесса сборки и препятствует публикации обновленных версий приложений.
В этой статье мы подробно рассмотрим суть проблемы, проанализируем поиски решений со стороны разработчиков и поддержки, а также представим официальное решение от Фирмы 1С для определенных версий платформы. Мы также обсудим ограничения этого решения и возможные пути для более новых версий 1С.
ru.mail.maps:mapkit:1.1.33Разработчики, пытающиеся собрать мобильное приложение 1С с включенными сервисами RuStore, начали получать сообщение об ошибке: Could not find ru.mail.maps:mapkit:1.1.33. Эта ошибка указывает на то, что система сборки не может найти необходимую библиотеку в указанных репозиториях. Проверка ссылок на репозитории, предоставляемые в документации или конфигурации проекта, подтверждает их неработоспособность, возвращая ошибку 404.
Попытки решить эту проблему путем исключения зависимостей из файла build.gradle платформы, как правило, приводят к еще большему количеству ошибок, поскольку другие компоненты платформы 1С активно используют классы из этой библиотеки, такие как ru.mail.maps.sdk.Map, ru.mail.maps.sdk.views.MapView и классы из пакета ru.mail.maps.data.*. Таким образом, простое удаление ссылки на библиотеку не является жизнеспособным решением, поскольку приводит к нарушению функциональности и компиляции кода, который зависит от этих классов.
Ситуация усугубляется тем, что на момент возникновения проблемы поддержка VK, которая является правообладателем этих картографических сервисов, молчит, а ссылки на репозитории и документацию на их страницах для разработчиков оказываются недействительными или нерелевантными для Android-сборки, что дополнительно затрудняет поиск решения.
Столкнувшись с проблемой, разработчики активно искали пути ее решения. Одна из идей заключалась в поиске аналогичных версий библиотеки или возможности исключить весь SDK для карт, если в приложении требуются только пуш-уведомления или другие сервисы RuStore, не связанные с картами. Однако, поиск похожих версий библиотеки не увенчался успехом, поскольку найденные варианты не содержали необходимых классов, а исключение SDK карт из сборки представлялось сложной и трудоемкой задачей, требующей глубокой переработки платформенных модулей 1С.
На запросы разработчиков, Фирма 1С и поддержка VK предоставляли следующие ответы:
Ответ от 1С:
Изначально служба поддержки 1С подтверждала проблему, указывая, что вопрос не связан напрямую со сборщиком 1С, и что они также ожидают ответа от поддержки VK и официальных изменений в документации. На тот момент было заявлено, что собрать мобильную платформу с поддержкой сервисов RuStore не представляется возможным.
Ответ от VK:
Поддержка VK информировала, что ведется работа над новой документацией, и на тот момент предлагались ссылки на существующие материалы. Однако, как выяснили разработчики, эти ссылки описывали дистрибуцию для iOS и не имели отношения к Android-сборке, что делало их бесполезными для решения текущей проблемы.
Несмотря на активные обсуждения на форумах и прямые обращения с просьбами предоставить готовые пакеты или альтернативные решения, поддержки долгое время игнорировали эти запросы, что оставляло разработчиков в состоянии неопределенности и без возможности продолжать работу над приложениями с RuStore сервисами.
К счастью, после некоторого ожидания, Фирма 1С выпустила обновление, которое решило проблему для определенной версии платформы. Служба технической поддержки портала developer.1c.ru сообщила о добавлении в сервис нового сборщика.
Для успешной сборки мобильного приложения с сервисами RuStore на платформе 1С 8.3.27, необходимо выполнить следующие шаги:
Используйте сборщик версии 8.3.27.72:
В сервис сборки был добавлен специализированный сборщик версии 8.3.27.72, который содержит исправления, устраняющие проблему с отсутствующей зависимостью ru.mail.maps:mapkit:1.1.33. Убедитесь, что ваш процесс сборки использует именно эту версию.
Выберите платформу 8.3.27 в параметрах мобильного приложения:
При настройке параметров вашего мобильного приложения в среде разработки 1С, важно явно указать использование платформы 8.3.27.
Установите флаг "Использовать версию для ознакомления":
Критически важным шагом является активация флага "Использовать версию для ознакомления" (или "Use preview version", если интерфейс на английском). Этот флаг позволяет использовать последние, тестовые или экспериментальные версии компонентов сборщика, в число которых, по всей видимости, входит и исправленная версия 8.3.27.72.
Применим эти шаги на практике. Предположим, вы работаете в конфигураторе 1С:
Откройте параметры вашего мобильного приложения. Обычно это делается через меню "Конфигурация" -> "Мобильное приложение" -> "Параметры мобильного приложения".
На вкладке, где выбирается версия мобильной платформы, убедитесь, что выбрана версия "8.3.27".
Найдите и установите галочку напротив опции "Использовать версию для ознакомления". Если вы не видите такой опции, возможно, ваш интерфейс или версия 1С отличаются, и вам стоит обратиться к актуальной документации 1С по сборке мобильных приложений или проверить наличие последних обновлений самой платформы.
Выполнение этих трех шагов должно позволить вам успешно собрать ваше мобильное приложение 1С с интегрированными сервисами RuStore без возникновения ошибки, связанной с ru.mail.maps:mapkit:1.1.33.
Хотя предложенное 1С решение эффективно устраняет проблему для платформы 8.3.27, оно, к сожалению, не является универсальным. Разработчики, работающие на более новых версиях платформы, например, 1С 8.5, столкнулись с тем, что описанные шаги не приводят к успеху, и ошибка сборки сохраняется. Это указывает на то, что для 1С 8.5 и, возможно, для будущих версий, потребуется другое решение.
Вероятнее всего, для более новых версий платформы 1С может потребоваться более глубокая адаптация. Это может включать:
Переработка модулей библиотеки под новый API: Возможно, VK Maps SDK или RuStore SDK для карт обновили свой API, и старые методы, используемые 1С, больше не поддерживаются, даже для обеспечения обратной совместимости. В этом случае, модули 1С, отвечающие за интеграцию с картографическими сервисами, должны быть переписаны для взаимодействия с актуальным API.
Анализ новой документации VK Maps SDK: Хотя ранее ссылки на документацию VK Maps SDK были нерелевантны для Android или содержали информацию только для iOS, это не исключает появления обновленной и применимой документации. Разработчикам на платформе 8.5 следует регулярно проверять официальные источники VK для разработчиков на предмет актуальных инструкций по подключению VK Maps SDK для Android.
Ожидание обновлений от 1С: Наиболее простым, но пассивным путем является ожидание выпуска аналогичного исправления или нового сборщика от Фирмы 1С, который будет поддерживать платформу 8.5 и будущие версии. Это решение предпочтительно для тех, кто не готов к самостоятельной глубокой переработке кода платформы.
Пока нет конкретного решения от 1С для платформы 8.5, разработчикам, столкнувшимся с этой проблемой, рекомендуется активно отслеживать новости и обновления от Фирмы 1С и VK, а также участвовать в обсуждениях на профильных форумах для получения самой актуальной информации.
Для более глубокого понимания контекста и возможных решений, рассмотрим некоторые аспекты работы с RuStore SDK и VK Maps, используя информацию из официальных источников.
Для работы с картами в экосистеме RuStore требуется получение специального ключа. Этот процесс подразумевает регистрацию в RuStore в качестве разработчика, последующий вход в консоль разработчика и создание нового приложения, для которого и будет сгенерирован ключ. Важно также убедиться, что ваше приложение ориентировано на Android SDK версии 26 или старше, поскольку это является минимальным требованием для многих современных SDK RuStore.
RuStore предоставляет централизованный Каталог SDK, который служит агрегатором информации о всех доступных библиотеках. В этом каталоге вы можете найти не только SDK от самого RuStore, но и от сторонних партнеров, таких как MyTracker, MyTarget и VK Maps. Каталог обычно содержит:
Регулярная проверка этого каталога может помочь в поиске актуальной информации о библиотеках и их зависимостях, особенно если возникают проблемы, подобные рассмотренной нами.
Платформа RuStore находится в активной стадии развития, и ее SDK постоянно обновляются. Например, Pay SDK был обновлен до версии 10.1.0 для Kotlin/Java и Flutter, а также были выпущены обертки для Unreal, Defold и Godot версии 10.2.0. Это свидетельствует об активном развитии платформы, но также означает, что разработчикам необходимо быть готовыми к изменениям в зависимостях и API. Подобные изменения могли повлиять на доступность и совместимость ru.mail.maps:mapkit:1.1.33.
Документация VK для разработчиков, касающаяся Maps SDK для Android, иногда может быть временно недоступна или обновляться из-за технических работ. Это может создавать дополнительные трудности для разработчиков, ищущих актуальную информацию о библиотеках и их использовании. Важно помнить, что даже если текущие ссылки не работают, ситуация может измениться, и периодическая проверка официальных ресурсов является обязательной.
Использование RuStore SDK Update для обеспечения обновляемости приложений имеет ряд специфических требований, которые важно учитывать при разработке:
Версия ОС Android: Устройство пользователя должно работать под управлением Android версии 7.0 или выше.
Версия RuStore: На устройстве должна быть установлена актуальная версия магазина приложений RuStore.
Авторизация пользователя: Пользователь должен быть авторизован в приложении RuStore.
Разрешение на установку: Пользователь должен предоставить разрешение на установку приложений из RuStore.
Совпадение ApplicationId: В файле build.gradle вашего проекта ApplicationId должен точно совпадать с ApplicationId APK-файла, который был опубликован в консоли разработчика RuStore.
Совпадение подписи keystore: Подпись приложения (keystore), используемая для сборки, должна совпадать с подписью APK-файла, опубликованного в RuStore.
Эти требования к обновлению, хотя и не относятся напрямую к картографическим сервисам, подчеркивают важность тщательной настройки проекта и соответствия требованиям платформы RuStore. Использование RuStore SDK Update с его режимами (принудительный, уведомляющий, тихий) может значительно повысить частоту обновлений приложений, что особенно полезно для пользователей, которые не всегда обновляются через сам магазин приложений.
Проблема сборки мобильного приложения 1С с сервисами RuStore, вызванная отсутствием зависимости ru.mail.maps:mapkit:1.1.33, является значительным препятствием для многих разработчиков. Мы видим, что Фирма 1С предприняла шаги для решения этой проблемы, выпустив обновленный сборщик 8.3.27.72, который при правильной конфигурации (выбор платформы 8.3.27 и активация флага "Использовать версию для ознакомления") позволяет успешно собрать приложение.
Однако, для разработчиков, использующих более новые версии платформы 1С, например 8.5, это решение пока не подходит, и им придется либо ждать дальнейших обновлений от 1С, либо рассматривать более глубокую переработку интеграции с картографическими сервисами, основываясь на актуальной документации VK Maps SDK и RuStore. Важно всегда проверять официальные источники и быть в курсе последних изменений в экосистемах 1С и RuStore для обеспечения стабильной работы ваших мобильных приложений.