Как опубликовать мобильное приложение 1С в Google Play с поддержкой 64-разрядной архитектуры?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При попытке опубликовать мобильное приложение, созданное на платформе 1С, в Google Play разработчики часто сталкиваются с ошибкой: "Этот выпуск не соответствует требованиям Google Play к 64-разрядным приложениям". Эта проблема стала актуальной с 1 августа 2019 года, когда Google ввел обязательное требование поддержки 64-битной архитектуры (arm64-v8a, x86_64) для всех новых приложений и обновлений. Давайте подробно разберем, как решить эту задачу и какие сопутствующие проблемы могут возникнуть на этом пути.

Основное решение: переход на мобильную платформу 8.3.15 и выше

Проанализировав ситуацию, выясним причину. Проблема заключается в том, что версии мобильной платформы 1С до 8.3.15 (например, 8.3.14) не содержали необходимых компонентов и заготовок для сборки 64-разрядных приложений. Сборщик мобильных приложений на старых версиях генерировал APK-файлы только для 32-разрядных архитектур (ARM и x86), что и приводило к отклонению релиза в Google Play Console.

Главный и обязательный шаг для решения проблемы — это обновление. Необходимо использовать:

  1. Мобильную платформу 1С:Предприятие версии 8.3.15 или новее.
  2. Актуальную версию "Сборщика мобильных приложений", совместимую с новой платформой.

После перехода на 15-ю платформу сборщик сможет формировать APK-файлы для 64-разрядных архитектур. Однако сам процесс перехода может вызвать ряд новых ошибок сборки. Рассмотрим их по порядку и найдем решения.

Решение сопутствующих проблем при сборке на платформе 8.3.15

Переход на новую версию платформы — это не просто обновление. Часто возникают ошибки, связанные с изменениями в самой платформе или с процессом настройки сборщика. Разберем самые распространенные из них.

Проблема 1: Ошибка сборки, связанная с разрешениями

При попытке сборки на новой платформе вы можете столкнуться с ошибкой вида:


[ERR] Используемая версия мобильной платформы не поддерживает использование разрешений в мобильной конфигурации. Мобильная платформа: 8.3.15.59
{CommonModule.MobileApplicationBuilding.Module(1323)}: Raise NStr("ru = 'Используемая версия мобильной платформы не поддерживает использование разрешений в мобильной конфигурации...

Эта ошибка указывает на то, что в процессе сборки не был найден файл permissions.xml, и сборщик ошибочно считает, что используется старая версия платформы, не поддерживающая новую систему разрешений.

Причина и решение:

Проблема кроется в том, как "Сборщик мобильных приложений" обрабатывает файлы мобильной платформы. Вероятнее всего, вы обновили сам сборщик, но он продолжает использовать "старые" данные о платформе, которые были загружены и обработаны до его обновления.

Чтобы это исправить, выполним следующие шаги:

  1. Убедитесь, что у вас установлена последняя версия конфигурации "Сборщик мобильных приложений" (например, 2.0.10 или выше).
  2. Откройте обновленный сборщик и заново загрузите дистрибутив мобильной платформы.
  3. Критически важный момент: для загрузки необходимо выбрать полный, нераспакованный zip-архив, который поставляется 1С (например, mobile_8_3_15_59.zip). Не нужно предварительно извлекать из него папки Android и iOS. Сборщик должен сам обработать весь архив, так как в нем содержится служебный файл maker-settings.xml, который необходим для корректной идентификации версии платформы и ее возможностей.
  4. После повторной загрузки платформы почистите кеш сборщика и запустите сборку заново. Ошибка должна исчезнуть.

Проблема 2: Ошибка из-за устаревшего разрешения "Мультимедиа"

Еще одна распространенная ошибка при сборке конфигурации, разработанной на старой платформе (например, 8.3.12), с помощью нового сборщика на платформе 8.3.15:


Мобильная конфигурация использует разрешение, которое не поддерживается используемой мобильной платформой: Multimedia

Причина и решение:

В платформе 8.3.15 была переработана система разрешений. Общее разрешение Мультимедиа было признано устаревшим и заменено на более гранулярные и конкретные, такие как Камера, Микрофон, Чтение данных пользователя и т.д. Ваша старая конфигурация все еще ссылается на несуществующее разрешение.

Исправляется это непосредственно в конфигурации:

  1. Откройте вашу мобильную конфигурацию в Конфигураторе, запущенном на платформе 8.3.15 или новее.
  2. Откройте палитру свойств конфигурации (правый клик на корневом элементе дерева -> Свойства).
  3. Найдите свойство "Используемые разрешения" и откройте его.
  4. Снимите флажок с устаревшего разрешения Мультимедиа.
  5. Установите флажки для новых, требуемых вашему приложению разрешений. Например, если вы используете камеру, установите флаг Камера.
  6. Сохраните конфигурацию и выгрузите ее для сборщика. После этого ошибка, связанная с разрешением, будет устранена.

Проблема 3: Предупреждение "Unoptimised APK" в Google Play Console

После успешной сборки и загрузки APK-файлов в Google Play вы можете увидеть предупреждение:


Unoptimised APK
Warning: This APK results in unused code and resources being sent to users. Your app could be smaller if you used the Android App Bundle.

При этом кнопка начала публикации ("Start Roll-out...") может быть неактивна. Это часто вводит в заблуждение, заставляя думать, что проблема в APK-файлах.

Причина и решение:

Это всего лишь информационное предупреждение, а не блокирующая ошибка. Google рекомендует использовать современный формат Android App Bundle (.aab) вместо нескольких APK, так как это позволяет оптимизировать размер приложения для конечного пользователя. Сборщик 1С более поздних версий (например, для платформы 8.3.18+) также умеет создавать `.aab` файлы.

Если вы используете multiple-APK, это предупреждение можно игнорировать. Неактивная кнопка публикации связана не с ним, а с тем, что вы не завершили все обязательные шаги по настройке релиза в Google Play Console.

Что нужно сделать:

  1. Внимательно просмотрите меню слева в консоли разработчика.
  2. Убедитесь, что вы заполнили все обязательные разделы: "Содержание приложения", "Целевая аудитория и контент", "Политика конфиденциальности", "Цены и распространение" и т.д.
  3. Напротив каждого выполненного пункта должна появиться зеленая галочка. Пока хотя бы один обязательный пункт не завершен (отмечен серой галочкой), кнопка публикации будет неактивна.
  4. Как только все требования будут выполнены, кнопка станет активной, и вы сможете опубликовать приложение, несмотря на предупреждение об "Unoptimised APK".

Как правильно загружать 32- и 64-битные APK в Google Play

Когда вы генерируете отдельные APK-файлы для разных архитектур, их нужно правильно загрузить в один релиз.

  1. В Google Play Console создайте новый релиз (например, в разделе закрытого или открытого тестирования).
  2. В секцию "App bundles and APKs" сначала загрузите 64-битную версию вашего приложения (например, файл `...-arm64-v8a.apk`).
  3. После успешной загрузки первого файла, не создавая нового релиза, в эту же секцию добавьте 32-битную версию (например, `...-armeabi-v7a.apk`).

В результате в вашем релизе будут присутствовать оба файла. Google Play автоматически определит архитектуру устройства пользователя и доставит ему соответствующий, оптимизированный APK.

← На главную