Как упростить сборку и публикацию мобильных приложений 1С под Android и iOS?

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

Разработка мобильных приложений на платформе 1С:Предприятие — это увлекательный процесс, который, однако, часто омрачается этапом сборки готового дистрибутива. Каждый разработчик сталкивается с необходимостью содержать «зоопарк» утилит: Java SDK, Android SDK, Gradle, Apache Ant, а для сборки под операционную систему iOS — еще и обязательное наличие компьютера на базе macOS с установленной средой Xcode.

С выходом новых релизов мобильной платформы 1С требования к версиям стороннего ПО постоянно меняются. Это приводит к тому, что разработчикам приходится тратить драгоценное время на администрирование сборочных сред вместо написания кода. В этой статье мы подробно разберем, как кардинально упростить процесс компиляции мобильных приложений 1С с помощью современных облачных и локальных инструментов автоматизации.

Способ 1. Официальный облачный «Сервис сборки и публикации» от фирмы 1С

Если раньше идея единого облачного сборщика казалась мечтой, то сегодня фирма «1С» предоставляет полноценный официальный Сервис сборки и публикации мобильных приложений. Он полностью избавляет разработчика от необходимости разворачивать локальные среды компиляции.

Рассмотрим ключевые преимущества этого подхода:

  1. Сборка под iOS без macOS: Облачный сервис компилирует проект на своих серверах. Вы можете инициировать сборку .ipa-файла прямо со своего рабочего места под управлением ОС Windows или Linux.
  2. Всегда актуальное ПО: Сервис автоматически поддерживает нужные версии Java SDK, Android SDK и Gradle для каждого релиза мобильной платформы. Вам больше не нужно настраивать переменные окружения.
  3. Интеграция с платформой: Весь процесс запускается через стандартный графический помощник (визард), встроенный в конфигурацию.

Разберем по шагам, как запустить сборку приложения через облако «1С»:

  1. Зарегистрируйтесь на портале для разработчиков developer.1c.ru и получите доступ к сервису сборки.
  2. Откройте вашу информационную базу 1С в режиме «Предприятие» и перейдите в меню «Функции для технического специалиста».
  3. Найдите и откройте стандартную обработку Сервис сборки мобильных приложений.
  4. В открывшемся мастере укажите вашу мобильную конфигурацию, выберите целевые операционные системы (Android и/или iOS) и архитектуру процессоров (ARM/x86).
  5. Для сборки под iOS загрузите ваши сертификаты разработчика и профили обеспечения (provisioning profiles), а также укажите UDID устройств для Ad Hoc тестирования.
  6. Нажмите кнопку «Запустить сборку». Облачный сервис примет конфигурацию, выполнит компиляцию и вернет вам готовые файлы: .apk для Android и .ipa для iOS.

Способ 2. Автоматизация сборки через Docker и CI/CD (DevOps-подход)

Если перед вашей командой стоит задача автоматизировать сборку приложений при каждом изменении кода (например, при помещении конфигурации в хранилище или 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. Скрипт автоматизации будет выполнять следующие действия:

  1. Выгружать мобильную конфигурацию из Git-репозитория в файлы с помощью утилиты v8reader или встроенных механизмов платформы.
  2. Запускать Docker-контейнер, передавая ему параметры сборки (ключи подписи, пути к исходникам и целевые настройки платформы).
  3. Сохранять готовый скомпилированный .apk-файл в артефакты сборки.

Способ 3. Решение проблемы быстрой доставки дистрибутивов (Over-the-Air)

Одной из главных болей мобильной разработки является тестирование свежих версий приложения заказчиками и тестировщиками. Публикация в App Store или Google Play для каждого промежуточного релиза неприемлема из-за длительного времени модерации (которое может занимать от нескольких часов до нескольких дней).

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

Для устройств на Android:

Самый простой и надежный способ — это генерация прямой ссылки на скачивание .apk-файла. В рамках настроенного CI/CD пайплайна можно использовать Telegram-бота, который после успешной сборки автоматически отправляет готовый файл в рабочий чат тестировщиков. Установка происходит в один клик прямо из мессенджера.

Для устройств на iOS:

С операционной системой от Apple все несколько сложнее из-за строгой политики безопасности. Установка приложений в обход App Store возможна по схеме Ad Hoc (для ограниченного списка зарегистрированных UDID устройств) или через корпоративную программу Apple Enterprise. Для развертывания используется протокол манифестов (файлов формата .plist).

Рассмотрим, как устроен этот процесс:

  1. Вы загружаете скомпилированный .ipa-файл на ваш защищенный веб-сервер, поддерживающий протокол HTTPS (это обязательное требование Apple).
  2. Рядом с файлом приложения размещается XML-файл манифеста с расширением .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>
  1. Для установки приложения пользователю отправляется специальная ссылка вида:
    itms-services://?action=download-manifest&url=https://yourserver.ru/apps/myapp.plist
  2. При переходе по этой ссылке стандартный браузер Safari на iOS автоматически распознает протокол, скачает манифест, найдет по нему файл приложения и установит его на экран смартфона. Для удобства эту ссылку можно закодировать в обычный QR-код.

Также для автоматизации внутренней дистрибуции рекомендуется рассмотреть специализированные сервисы, такие как Firebase App Distribution или отечественные аналоги. Они предоставляют готовый SDK и удобные личные кабинеты для управления тестовыми сборками как для Android, так и для iOS.

Резюме

Мы проанализировали различные подходы к сборке мобильных приложений на платформе 1С. Для небольших команд и периодических сборок идеальным выбором станет использование официального Облачного сервиса 1С, который полностью решает проблему отсутствия macOS и снимает рутину по настройке окружения. В то же время для крупных проектов с высокой частотой релизов наилучшим выбором остается внедрение Docker контейнеров и интеграция сборщика в общие пайплайны CI/CD компании.

← На главную