Компиляция мобильного приложения 1С: окружение, Android, iOS и публикация
Содержание
Скомпилировать мобильное приложение
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С:Предприятия как любая другая база. Это пульт управления сборкой.
- JDK (Java Development Kit) — нужен для сборки Android и для создания ключа подписи.
- Android SDK — набор инструментов Google:
platform-tools,build-tools, компоненты нужного уровня API. Ставится через Android Studio или отдельным пакетом command-line tools. - Для iOS — отдельно: компьютер на macOS с установленным Xcode и учётная запись Apple Developer (о ней ниже).
Версии JDK и Android SDK должны соответствовать тем, что указаны в документации к вашему релизу мобильной платформы. Это главная причина, по которой сборка падает у новичков: поставили «свежий» SDK, а платформа ждёт конкретную версию build-tools. Перед установкой сверьтесь с документацией релиза.
Если 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 Play | Google Play Console |
.apk | Прямая установка на устройство, раздача файлом, тесты | Телефон, корпоративная раздача, MDM |
Для новых приложений в Google Play сейчас принимают именно .aab — магазин сам собирает из него оптимальные .apk под конкретные устройства. Для установки «в обход магазина» или для тестов собирают .apk.
На этапе отладки собирайте .apk и ставьте его на реальный телефон через кабель или по файлу. Эмулятор не всегда повторяет поведение сканера штрихкодов, камеры и NFC, а для учётных приложений это часто ключевые функции.
Сборка под iOS: Mac, сертификаты и требования Apple
Под iOS правила жёстче, и обойти их нельзя. Собрать .ipa можно только на компьютере с macOS и установленным Xcode — это требование Apple, а не 1С. На Windows локально iOS-пакет не собрать (остаётся облачный сервис, о нём ниже).
Что понадобится помимо Mac:
- Учётная запись Apple Developer — платная, примерно 99 долларов в год. Без неё приложение не подписать и в App Store не опубликовать.
- Идентификатор приложения (Bundle ID) — регистрируется в кабинете разработчика Apple, должен совпадать с идентификатором пакета в сборщике.
- Сертификат распространения — им подписывается собранный пакет.
- Профиль обеспечения (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?
Можно ли собрать iOS без собственного компьютера на macOS?
.ipa идёт только на macOS с Xcode. Обойти это помогает облачный сервис сборки 1С: компиляция под iOS выполняется на стороне сервиса, вы предоставляете свои сертификаты Apple.