Разработка и сопровождение мобильных приложений на платформе 1С имеет свои специфические нюансы, особенно когда речь заходит о процессе обновления уже установленных у пользователей программ. Часто разработчики сталкиваются с ситуацией, когда при попытке установить новую версию APK-файла поверх старой Android выдает ошибки типа «Приложение не установлено», «Пакет с таким названием уже существует» или «Ошибка синтаксического анализа пакета». В этой статье мы подробно разберем, как правильно подготовить обновление мобильного приложения 1С, проанализируем причины возникновения конфликтов и выясним, какие настройки сборщика мобильных приложений критически важны для бесшовного апдейта.
Когда мы дорабатываем типовую конфигурацию, например, «1С:Мобильная касса», и хотим передать пользователям обновленный файл, основной преградой становится защитная система Android. Рассмотрим основные причины, по которым система может отклонить файл обновления:
keystore в конфигураторе, обновить приложение «поверх» не получится.com.e1c.MobileCash на com.mycompany.MobileCash) приводит к тому, что Android считает это новым приложением.Проанализируем разницу между двумя параметрами версии, которые мы задаем при сборке в 1С. Это один из самых важных моментов для успешного обновления. Выясним, за что отвечает каждый из них:
VersionName (Имя версии) — это строковое значение, которое мы видим в настройках телефона или в разделе «О программе». Оно может быть любым: "2.0.1", "2.0.1-beta", "Финал". Для системы это просто текст, он не влияет на логику обновления.
VersionCode (Код версии) — это целое положительное число. Рассмотрим правило: код каждой новой версии обязательно должен быть больше предыдущей. Если вы выпустили приложение с VersionCode = 10, то обновление должно иметь код 11 или выше. Если оставить 10 или поставить 9, Android выдаст ошибку пакета.
Для автоматизации этого процесса в «Сборщике мобильных приложений» рекомендуется не удалять записи о старых сборках. Как показывает практика, если сохранять историю сборок в базе сборщика, система сама предлагает инкрементировать (увеличить на 1) номер сборки, что гарантирует корректную установку обновления.
Разберем ситуацию: вы собрали APK, отправили пользователю, а он получает сообщение о конфликте подписи. Это означает, что файл ключа .keystore, использованный при сборке, отличается от оригинального. При разработке в среде 1С важно:
Рассмотрим альтернативный и более профессиональный метод обновления — через публикацию на веб-сервере. Это позволяет приложению самостоятельно проверять наличие обновлений при запуске. Разберем по шагам, как это реализовать:
Во-первых, в настройках сборщика необходимо указать URL для проверки обновлений. На вашем веб-сервере (Apache или IIS) должен располагаться XML-файл или текстовый файл, в котором указан номер актуальной версии и ссылка на новый APK.
Во-вторых, крайне важно правильно настроить MIME-типы на стороне сервера. Если сервер не знает, как отдавать файлы .apk, телефон может скачать их как текстовые файлы или выдать ошибку загрузки. Настроим тип MIME на сервере:
Расширение: .apk
MIME-тип: application/vnd.android.package-archive
Посмотрим на технический нюанс, связанный с внешними компонентами (например, для работы со сканерами штрихкодов или эквайрингом). Иногда при обновлении через веб-сервер приложение может «падать» при первом запуске после апдейта. Это связано с инициализацией библиотек. Проанализируем решение: в некоторых случаях помогает повторный запуск приложения, однако стабильнее всего ведут себя сборки, где версии платформы 1С при обновлении совпадают или обновляются последовательно (без перепрыгивания через 3-4 мажорных релиза).
Если после всех манипуляций приложение всё равно не обновляется, разберем алгоритм «чистой» установки, который иногда требует чуть больше действий, чем просто нажатие на кнопку «Удалить»:
adb uninstall com.yourcompany.yourapp
Это гарантированно очистит кэш пакетов в системе и позволит установить новую версию с чистого листа.
Для того чтобы обновление вашего мобильного приложения 1С на Android проходило гладко, придерживайтесь следующих правил:
VersionName.Соблюдение этих простых, но критически важных правил позволит вам избежать большинства проблем с установкой обновлений и обеспечит стабильную работу ваших мобильных решений на базе 1С.