Компиляция мобильного приложения 1С: окружение, Android, iOS и публикация

· 9 мин

Содержание

Скомпилировать мобильное приложение 1С:Предприятия — значит собрать отдельный установочный пакет (.apk или .aab для Android, .ipa для iOS), внутрь которого зашиты мобильная платформа и ваша конфигурация. Делают это не в Конфигураторе, а через отдельную конфигурацию «Сборщик мобильных приложений» плюс внешние инструменты: Android SDK и JDK для Android, компьютер на macOS с Xcode для iOS.

Сразу разведём два понятия, которые часто путают. Мобильный клиент — это универсальное приложение из Google Play или App Store, которое просто подключается к опубликованной базе; его компилировать не нужно. Мобильное приложение — автономная сборка с вашей конфигурацией внутри, которая работает и без связи с сервером. Компиляция нужна именно для второго варианта: когда вы выпускаете собственный продукт под своим именем и значком.

Ниже — весь путь: от установки окружения до публикации готового пакета в магазине.

Клиент или автономное приложение — что именно вы собираете

Прежде чем ставить SDK, определитесь, что вам нужно. От этого зависит, придётся ли вообще что-то компилировать.

  • 📱 Нужен доступ к вашей базе с телефона, свой бренд не важен — берите мобильный клиент. Публикуете базу на веб-сервере, ставите клиент 1С из магазина, подключаетесь по адресу. Сборка не требуется.
  • 📦 Нужно отдельное приложение под своим именем, значком и с возможностью работы офлайн — собираете автономное мобильное приложение. Вот здесь и начинается компиляция.
  • 🏢 Приложение для сотрудников, не для публичного магазина — тоже автономная сборка, но распространяете .apk напрямую или через систему управления устройствами (MDM), минуя Google Play.
Нужна ли вам компиляция?

Дальше речь только про автономное приложение — то, что действительно собирают.

Окружение для сборки: платформа, сборщик и SDK

Сборка идёт на обычном компьютере (не на телефоне). Минимальный набор:

  1. Мобильная платформа 1С:Предприятия — распространяется бесплатно на портале релизов. В дистрибутив входит и сама платформа для устройств, и конфигурация «Сборщик мобильных приложений».
  2. Конфигурация «Сборщик мобильных приложений» — запускается на обычной платформе 1С:Предприятия как любая другая база. Это пульт управления сборкой.
  3. JDK (Java Development Kit) — нужен для сборки Android и для создания ключа подписи.
  4. Android SDK — набор инструментов Google: platform-tools, build-tools, компоненты нужного уровня API. Ставится через Android Studio или отдельным пакетом command-line tools.
  5. Для iOS — отдельно: компьютер на macOS с установленным Xcode и учётная запись Apple Developer (о ней ниже).

Версии JDK и Android SDK должны соответствовать тем, что указаны в документации к вашему релизу мобильной платформы. Это главная причина, по которой сборка падает у новичков: поставили «свежий» SDK, а платформа ждёт конкретную версию build-tools. Перед установкой сверьтесь с документацией релиза.

Что проверить перед первой сборкой
Выполнено: 0 / 6

Если iOS пока не нужен, Mac и Apple Developer можно отложить — Android собирается полностью на Windows или Linux.

Настройка сборщика и загрузка конфигурации

Запускаете базу со сборщиком в режиме 1С:Предприятие. Первым делом — настройки окружения: сборщику нужно показать, где лежат мобильная платформа, Android SDK и JDK. В настройках указываете пути к этим каталогам. Пока пути не заданы, кнопка сборки работать не будет.

Дальше создаёте новое приложение в списке сборщика и заполняете его карточку:

  • Имя и идентификатор пакета. Идентификатор пишут в обратном доменном формате: ru.mycompany.myapp. Он должен быть уникальным — именно по нему магазин отличает ваше приложение от чужих. Сменить идентификатор после публикации уже нельзя, поэтому продумайте его сразу.
  • Версия и код версии. Версия — то, что видит пользователь (1.2.0), код версии — целое число, которое растёт с каждой публикацией. Магазин не примет загрузку с кодом версии не выше предыдущего.
  • Конфигурация. Загружаете .cf вашей мобильной конфигурации — она и станет содержимым приложения.
  • Разрешения и возможности. Отмечаете, что приложению разрешено: камера, геолокация, работа с файлами, push-уведомления и прочее. Лишние разрешения лучше не включать — магазины к ним придираются при модерации.

💡 Удобно хранить исходную конфигурацию в отдельной базе-разработке и выгружать .cf перед каждой сборкой. Так у вас всегда понятно, какая версия кода ушла в конкретный пакет.

Сборка под Android: ключ подписи и форматы пакета

Любой Android-пакет должен быть подписан, иначе устройство его не установит, а магазин не примет. Подпись — это ваш ключ в хранилище (keystore), который создаётся один раз и используется для всех последующих обновлений приложения.

Ключ создают утилитой keytool из состава JDK:

keytool -genkey -v -keystore myapp.keystore -alias myapp -keyalg RSA -keysize 2048 -validity 10000

Утилита спросит пароль хранилища, пароль ключа и данные владельца. Сохраните файл хранилища и оба пароля в надёжном месте. Если потеряете ключ, вы больше не сможете выпустить обновление этого приложения в Google Play — придётся публиковать новое, с новым идентификатором, и собирать аудиторию заново.

В карточке приложения указываете путь к хранилищу, алиас и пароли, затем запускаете сборку. На выходе — пакет:

ФорматКогда нуженКуда
.aab (Android App Bundle)Публикация новых приложений в Google PlayGoogle Play Console
.apkПрямая установка на устройство, раздача файлом, тестыТелефон, корпоративная раздача, MDM

Для новых приложений в Google Play сейчас принимают именно .aab — магазин сам собирает из него оптимальные .apk под конкретные устройства. Для установки «в обход магазина» или для тестов собирают .apk.

На этапе отладки собирайте .apk и ставьте его на реальный телефон через кабель или по файлу. Эмулятор не всегда повторяет поведение сканера штрихкодов, камеры и NFC, а для учётных приложений это часто ключевые функции.

Сборка под iOS: Mac, сертификаты и требования Apple

Под iOS правила жёстче, и обойти их нельзя. Собрать .ipa можно только на компьютере с macOS и установленным Xcode — это требование Apple, а не 1С. На Windows локально iOS-пакет не собрать (остаётся облачный сервис, о нём ниже).

Что понадобится помимо Mac:

  1. Учётная запись Apple Developer — платная, примерно 99 долларов в год. Без неё приложение не подписать и в App Store не опубликовать.
  2. Идентификатор приложения (Bundle ID) — регистрируется в кабинете разработчика Apple, должен совпадать с идентификатором пакета в сборщике.
  3. Сертификат распространения — им подписывается собранный пакет.
  4. Профиль обеспечения (provisioning profile) — связывает сертификат, идентификатор приложения и список устройств (для тестовых сборок) или режим публикации.

Эти сертификаты и профиль создаются в кабинете Apple Developer, скачиваются и устанавливаются на Mac. В сборщике вы указываете их, после чего запускаете сборку под iOS.

Истёкший сертификат или профиль, не совпадающий с Bundle ID, — самая частая причина, по которой iOS-сборка падает. Сертификаты имеют срок годности; если сборка перестала проходить «вдруг», первым делом проверьте их в кабинете Apple.

Облачный сервис сборки без своего окружения

Держать Mac ради одной сборки в год — дорого, а ставить и поддерживать весь набор SDK — хлопотно. Для таких случаев 1С предлагает облачный сервис сборки мобильных приложений.

Идея простая: вы готовите приложение в сборщике, но саму компиляцию отправляете на сервер 1С, а готовый пакет получаете обратно. Что это даёт:

  • 🍏 Сборку под iOS без собственного Mac. Вы всё равно загружаете свои сертификаты Apple, но сама компиляция идёт в облаке.
  • 🧰 Меньше возни с окружением. Не нужно подбирать совместимые версии SDK и JDK локально — на стороне сервиса они уже согласованы с платформой.
  • 💻 Сборку с любой ОС. Android и iOS собираются из одной базы-сборщика независимо от того, Windows у вас или Linux.

Подключение к сервису настраивается в том же сборщике. Это разумная альтернатива, если собственная сборка у вас не пошла из-за несовместимых версий или если iOS нужен эпизодически. Для регулярного потока сборок локальное окружение всё же удобнее и быстрее.

Публикация и распространение готового приложения

Собранный пакет сам по себе ничего не делает — его нужно донести до пользователей. Способов три.

Google Play. Регистрируете аккаунт разработчика в Google Play Console — разовый взнос около 25 долларов. Загружаете .aab, заполняете карточку (описание, скриншоты, политика конфиденциальности), проходите модерацию. Обновления выпускаете, увеличивая код версии и загружая новый пакет, подписанный тем же ключом.

App Store. Публикация идёт через App Store Connect на той же платной подписке Apple Developer (99 долларов в год). Модерация у Apple строже и дольше, чем у Google: закладывайте несколько дней и готовьте приложение к ручной проверке.

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

  • раздать .apk файлом (пользователь разрешает установку из неизвестных источников);
  • развернуть через корпоративную систему управления устройствами (MDM);
  • для iOS — использовать схемы корпоративного распространения Apple для организаций.

💡 Для внутренних приложений прямая раздача .apk обычно проще и дешевле магазина: не нужна модерация, обновление выкатывается мгновенно.

Частые ошибки сборки

Большинство сбоев при компиляции — это либо несовпадение версий инструментов, либо проблемы с подписью. Разберём типичные симптомы.

Диагностика: выберите симптом

Отдельно про версии: ведите заметку, какая связка «мобильная платформа + JDK + Android SDK» у вас собирается без ошибок. При переходе на новый релиз платформы эту связку почти всегда придётся обновлять, и готовая запись экономит часы подбора.

Частые вопросы

Нужен ли Mac, чтобы собрать приложение только под Android?
Нет. Android собирается полностью на Windows или Linux — нужны лишь JDK и Android SDK. Mac и учётка Apple Developer требуются исключительно для iOS.
Можно ли собрать iOS без собственного компьютера на macOS?
Локально — нет, компиляция .ipa идёт только на macOS с Xcode. Обойти это помогает облачный сервис сборки 1С: компиляция под iOS выполняется на стороне сервиса, вы предоставляете свои сертификаты Apple.
Что будет, если потерять ключ подписи Android?
Вы не сможете выпустить обновление уже опубликованного приложения — Google Play принимает обновления только с той же подписью. Придётся публиковать новое приложение с новым идентификатором. Поэтому файл хранилища и пароли хранят так же бережно, как пароль администратора базы.
Чем мобильное приложение отличается от мобильного клиента?
Клиент — универсальная программа из магазина, которая подключается к опубликованной базе и без неё бесполезна. Приложение — автономная сборка с вашей конфигурацией внутри, работает самостоятельно, в том числе офлайн. Компилируют только приложение.
Сколько стоит выложить приложение в магазины?
Google Play — разовый взнос около 25 долларов за аккаунт разработчика. Apple — около 99 долларов в год за участие в Apple Developer Program. Сама мобильная платформа 1С и сборщик распространяются бесплатно.