Разработка мобильных приложений на платформе 1С:Предприятие — это увлекательный процесс, который, однако, часто омрачается этапом сборки готового дистрибутива. Каждый разработчик сталкивается с необходимостью содержать «зоопарк» утилит: Java SDK, Android SDK, Gradle, Apache Ant, а для сборки под операционную систему iOS — еще и обязательное наличие компьютера на базе macOS с установленной средой Xcode.
С выходом новых релизов мобильной платформы 1С требования к версиям стороннего ПО постоянно меняются. Это приводит к тому, что разработчикам приходится тратить драгоценное время на администрирование сборочных сред вместо написания кода. В этой статье мы подробно разберем, как кардинально упростить процесс компиляции мобильных приложений 1С с помощью современных облачных и локальных инструментов автоматизации.
Если раньше идея единого облачного сборщика казалась мечтой, то сегодня фирма «1С» предоставляет полноценный официальный Сервис сборки и публикации мобильных приложений. Он полностью избавляет разработчика от необходимости разворачивать локальные среды компиляции.
Рассмотрим ключевые преимущества этого подхода:
.ipa-файла прямо со своего рабочего места под управлением ОС Windows или Linux.Java SDK, Android SDK и Gradle для каждого релиза мобильной платформы. Вам больше не нужно настраивать переменные окружения.Разберем по шагам, как запустить сборку приложения через облако «1С»:
developer.1c.ru и получите доступ к сервису сборки.Сервис сборки мобильных приложений.provisioning profiles), а также укажите UDID устройств для Ad Hoc тестирования..apk для Android и .ipa для iOS.Если перед вашей командой стоит задача автоматизировать сборку приложений при каждом изменении кода (например, при помещении конфигурации в хранилище или Git), стандартный ручной запуск через интерфейс 1С не подойдет. В этом случае мы рекомендуем построить собственный конвейер непрерывной интеграции (CI/CD) с использованием контейнеризации Docker.
Проанализируем архитектуру такого решения. Вместо ручной настройки утилит мы упаковываем консольный сборщик мобильных приложений 1С (файл com.e1c.g5rt.mobilebuilder.jar) в изолированный Docker-контейнер. Это гарантирует воспроизводимость сборки на любом сервере.
Посмотрим на пример конфигурации простейшего Dockerfile для сборки Android-приложений:
FROM openjdk:8-jdk-slim
# Установка необходимых системных утилит
RUN apt-get update && apt-get install -y wget unzip git && rm -rf /var/lib/apt/lists/*
# Скачивание и установка Android Commandline Tools
ENV ANDROID_SDK_ROOT /opt/android-sdk
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
wget -q https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O /tmp/tools.zip && \
unzip -q /tmp/tools.zip -D ${ANDROID_SDK_ROOT}/cmdline-tools && \
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \
rm /tmp/tools.zip
# Настройка переменных окружения
ENV PATH ${PATH}:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools
# Принятие лицензий SDK
RUN yes | sdkmanager --licenses
# Копируем файл сборщика 1С в контейнер
COPY ./builder/com.e1c.g5rt.mobilebuilder.jar /opt/builder/mobilebuilder.jar
WORKDIR /workspace
ENTRYPOINT ["java", "-jar", "/opt/builder/mobilebuilder.jar"]
Используя данный контейнер, мы можем настроить автоматический пайплайн в GitLab CI/CD или GitHub Actions. Скрипт автоматизации будет выполнять следующие действия:
v8reader или встроенных механизмов платформы..apk-файл в артефакты сборки.Одной из главных болей мобильной разработки является тестирование свежих версий приложения заказчиками и тестировщиками. Публикация в App Store или Google Play для каждого промежуточного релиза неприемлема из-за длительного времени модерации (которое может занимать от нескольких часов до нескольких дней).
Выясним, как организовать максимально удобную и быструю установку приложений на устройства минуя официальные магазины:
Для устройств на Android:
Самый простой и надежный способ — это генерация прямой ссылки на скачивание .apk-файла. В рамках настроенного CI/CD пайплайна можно использовать Telegram-бота, который после успешной сборки автоматически отправляет готовый файл в рабочий чат тестировщиков. Установка происходит в один клик прямо из мессенджера.
Для устройств на iOS:
С операционной системой от Apple все несколько сложнее из-за строгой политики безопасности. Установка приложений в обход App Store возможна по схеме Ad Hoc (для ограниченного списка зарегистрированных UDID устройств) или через корпоративную программу Apple Enterprise. Для развертывания используется протокол манифестов (файлов формата .plist).
Рассмотрим, как устроен этот процесс:
.ipa-файл на ваш защищенный веб-сервер, поддерживающий протокол HTTPS (это обязательное требование Apple)..plist, описывающий метаданные приложения (идентификатор, версию и прямую ссылку на сам .ipa). Посмотрим на пример структуры такого файла:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://yourserver.ru/apps/myapp.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.company.myapp</string>
<key>bundle-version</key>
<string>1.0.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Мобильное приложение 1С</string>
</dict>
</dict>
</array>
</dict>
</plist>
itms-services://?action=download-manifest&url=https://yourserver.ru/apps/myapp.plistТакже для автоматизации внутренней дистрибуции рекомендуется рассмотреть специализированные сервисы, такие как Firebase App Distribution или отечественные аналоги. Они предоставляют готовый SDK и удобные личные кабинеты для управления тестовыми сборками как для Android, так и для iOS.
Мы проанализировали различные подходы к сборке мобильных приложений на платформе 1С. Для небольших команд и периодических сборок идеальным выбором станет использование официального Облачного сервиса 1С, который полностью решает проблему отсутствия macOS и снимает рутину по настройке окружения. В то же время для крупных проектов с высокой частотой релизов наилучшим выбором остается внедрение Docker контейнеров и интеграция сборщика в общие пайплайны CI/CD компании.