Сборка и публикация в мобильной разработке: что это, какие форматы и как работает

Автор: IT Sectr Опубликовано: 2026-04-07 Время чтения: 10 мин

Сборка и публикация мобильного приложения — это процесс превращения исходного кода в установочный файл (APK, AAB, IPA) и его загрузки в магазины приложений. По данным Google Play Console (2025), Android App Bundle (AAB) — обязательный формат для публикации в Google Play с августа 2021 года. В этой статье разберём форматы сборок, компиляцию, подпись кода, процесс публикации и бета-тестирование.

Главное

  • APK — классический установочный файл Android; AAB — современный формат для Google Play с динамической генерацией APK.
  • IPA — установочный файл iOS, подписанный сертификатом Apple. Сборка только на macOS.
  • Компиляция: JIT (Android до 6.0), AOT (Android 7+ ART), Bitcode (iOS, опционально).
  • Code Signing — обязательная подпись приложения цифровым сертификатом для идентификации разработчика.
  • TestFlight (iOS) и Internal Testing (Android) — инструменты для бета-тестирования перед публикацией.

Форматы сборок: APK, AAB, IPA

APK vs AAB

APK (Android Package Kit) — традиционный формат сборки и публикации мобильных приложений на Android. APK содержит весь код, ресурсы и манифест приложения. AAB (Android App Bundle) — формат, введённый Google в 2018 году и ставший обязательным для новых приложений с августа 2021. AAB не устанавливается напрямую — Google Play динамически генерирует оптимизированный APK для каждого устройства из AAB.

Преимущества AAB: размер загрузки в среднем на 15% меньше (за счёт доставки только нужных ресурсов: правильные плотности экрана, языки, архитектуры процессора). AAB также поддерживает modular delivery — вы можете загружать модули по требованию (Play Feature Delivery) или отложенно (Play On-Demand). Для разработчиков AAB обязателен, для распространения вне Google Play (сайди, маркетплейсы) — только APK.

IPA

IPA (iOS App Store Package) — установочный файл iOS, который представляет собой ZIP-архив с подписанным приложением. IPA содержитPayload/ папку с .app-бандлом, Provisioning Profile и подпись. IPA собирается только на macOS через Xcode, который создаёт архив (.xcarchive) и экспортирует IPA. Для распространения через App Store IPA подписывается Apple Distribution Certificate, для Ad Hoc или Enterprise — соответствующими сертификатами.

Сравнение форматов сборок iOS и Android
Параметр APK AAB IPA
Платформа Android Android (Google Play) iOS
Формат ZIP-архив ZIP-архив ZIP-архив
Установка напрямую Да Нет (через Google Play) Через App Store / MDM
Подпись Keystore (JKS) Keystore (JKS/PEPK) Apple Certificate
App Thinning Нет Да (автоматически) Да (Slicing, Bitcode)

Компиляция и оптимизация: JIT, AOT, ART, Bitcode

JIT vs AOT

JIT (Just-In-Time) — компиляция кода во время выполнения приложения, влияющая на скорость сборки и публикации. На Android до версии 5.0 (Lollipop) использовался Dalvik VM с JIT-компиляцией. При каждом запуске приложения байткод DEX преобразовывался в машинный код «на лету». Недостаток: замедление при первом запуске и дополнительное потребление энергии. AOT (Ahead-Of-Time) — компиляция кода до запуска приложения, во время установки. Начиная с Android 7.0 (Nougat), ART (Android Runtime) компилирует приложение полностью при установке.

ART (Android Runtime) — среда выполнения, заменившая Dalvik в Android 5.0. ART использует гибридный подход: AOT-компиляция при установке + JIT для часто выполняемых методов. Это сочетает скорость AOT (быстрый запуск) с гибкостью JIT (адаптивная оптимизация). Результат: производительность Android-приложений выросла на 20–30% по сравнению с Dalvik. Для разработчиков переход на ART прозрачен — код не требует изменений.

Bitcode и App Thinning

Bitcode — промежуточное представление кода (IR), которое Apple использует для перекомпиляции IPA под разные архитектуры процессоров. Bitcode опционален: для iOS-приложений он включён по умолчанию, для watchOS и tvOS — обязателен. Apple может перекомпилировать Bitcode при выходе новых процессоров без участия разработчика. App Thinning — технология Apple, включающая Slicing (доставка только нужных ресурсов для устройства) и On-Demand Resources (загрузка ресурсов по требованию). App Thinning сокращает размер загрузки из App Store на 30–50%.

DEX — формат байткода для Android, исполняемый ART/Dalvik. Исходный код Kotlin/Java компилируется в class-файлы, затем в DEX через dx или d8 (современный и более быстрый инструмент). Multidex — механизм для приложений, которые превышают лимит в 65 536 методов в одном DEX-файле. В современных проектах multidex включается автоматически, если targetSdkVersion >= 21.

Подпись кода: Code Signing, Keystore, Provisioning Profile

Android: Keystore

Keystore — файл, содержащий приватный ключ и сертификат для подписи Android-приложения при сборке. Keystore создаётся через keytool (ключ -genkey) или Android Studio. Важно: Keystore нельзя терять — без него вы не сможете обновить приложение в Google Play. Параметры для подписи: keyAlias, keyPassword, storePassword и storeFile. Формат: JKS (Java KeyStore) или PEPK (Play Encrypted Private Key) для AAB.

App Bundle ID (Android) — уникальный идентификатор приложения в пакетной нотации (com.example.app). Version Code — целое число для внутренней нумерации версий (каждая новая сборка увеличивает его). Version Name — строка, отображаемая пользователю (1.2.3). Эти параметры задаются в build.gradle уровня app.

iOS: Apple Certificate и Provisioning Profile

Apple Certificate — цифровой сертификат, удостоверяющий личность разработчика. Типы: Development (для отладки), Distribution (для App Store), Ad Hoc (для ограниченного распространения). Сертификаты создаются в Apple Developer Account и скачиваются в Keychain. Provisioning Profile — файл, связывающий сертификат, App ID (Bundle Identifier) и список разрешённых устройств. Без Provisioning Profile приложение не запустится на устройстве.

Bundle ID (iOS) — уникальный идентификатор приложения (com.example.app). Build Number — версия сборки, увеличивается с каждым билдом. Marketing Version — версия, показываемая пользователю. Управление версиями: для iOS параметры задаются в Info.plist и Project Settings, для Android — в build.gradle. В IT Sectr мы автоматизируем обновление версий через Fastlane — это исключает человеческие ошибки при релизе.

Процесс публикации в магазинах

Google Play Console

Google Play Console — инструмент для публикации Android-приложений. Процесс: регистрация аккаунта разработчика ($25 разово), создание приложения, заполнение метаданных (название, описание, скриншоты, категория), загрузка AAB, настройка цен и распространения, ревью. Google проверяет приложение автоматически (на вирусы, несоответствие политикам) и вручную для некоторых категорий. Ревью занимает от нескольких часов до 2–3 дней.

App Store Connect

App Store Connect — платформа Apple для публикации iOS-приложений. Процесс: аккаунт разработчика Apple ($99/год), создание приложения в App Store Connect, подготовка IPA в Xcode (Archive → Distribute App → App Store Connect), загрузка через Transporter или Xcode, заполнение метаданных, отправка на ревью. App Review — ручная проверка Apple может занять от 24 часов до 7 дней. Типичные причины отказа: неработающие кнопки, неполный контент, запрос разрешений без объяснения.

Бета-тестирование: TestFlight, Closed/Open Beta

TestFlight (iOS)

TestFlight — официальный инструмент Apple для бета-тестирования iOS-приложений. TestFlight поддерживает Internal Testing (до 100 тестировщиков по email, без ревью) и External Testing (до 10 000 тестировщиков, с ревью Apple). Сборки доступны 90 дней, после чего нужно загрузить новую. TestFlight автоматически обновляет приложение у тестировщиков при загрузке новой сборки.

Internal / Closed / Open Beta (Android)

Internal Testing (Android) — до 100 тестировщиков, без ревью Google, сборка доступна сразу. Closed Beta — до 1000 тестировщиков по email или Google Groups, без ревью. Open Beta — неограниченное количество тестировщиков через публичную ссылку, с ревью Google. Staged Rollout — постепенное увеличение процента пользователей, получающих обновление (5% → 20% → 50% → 100%). Это самый безопасный способ релиза.

App Thinning (iOS) — автоматическое уменьшение размера загружаемого IPA: Slicing (только нужные ресурсы для устройства), Bitcode (оптимизация под процессор), On-Demand Resources (загрузка по требованию). В IT Sectr мы используем TestFlight для бета-тестов iOS и Internal Testing для Android — это позволяет отловить проблемы до массового релиза.

Часто задаваемые вопросы

В чём разница между APK и AAB?

APK — универсальный установочный файл, работает на любом устройстве. AAB — формат для Google Play, который генерирует оптимальный APK для каждого устройства. Размер загрузки через AAB на 15% меньше. Для Google Play обязателен AAB, для сайдлоада — APK.

Что будет, если потерять Keystore?

Вы не сможете обновить приложение в Google Play — придётся создавать новое приложение с новым package name. Храните Keystore в безопасном месте (менеджер паролей, зашифрованный Git). Google Play App Signing (использование ключей Google) снижает этот риск.

Сколько стоит публикация в магазинах?

Google Play — $25 разово за аккаунт разработчика. App Store — $99/год. Обе суммы включают неограниченное количество приложений. Для iOS также нужен Mac (от $999) или облачная аренда Mac.

Что такое Staged Rollout?

Staged Rollout — постепенная выкатка обновления: сначала 5% пользователей, затем 20%, 50% и 100%. Если на любом этапе обнаружены краши — выкатка останавливается. Доступно в Google Play Console.

Нужно ли платить за аккаунт разработчика для тестирования?

Для Android — нет, вы можете устанавливать APK на устройство через USB или эмулятор без аккаунта. Для iOS — да, без аккаунта $99/год приложение будет работать только на симуляторе, не на реальном устройстве.

Итоги

  • AAB — современный формат для Google Play (обязателен с 2021). APK — для распространения вне магазина.
  • IPA — установочный файл iOS, собирается только на Mac, подписывается Apple Certificate.
  • ART (Android Runtime) использует гибрид AOT + JIT; Bitcode — опциональное промежуточное представление для iOS.
  • Keystore (Android) и Apple Certificate + Provisioning Profile (iOS) — обязательные компоненты подписи кода.
  • Google Play Console — $25 разово; App Store Connect — $99/год. Ревью занимает от часов до недели.
  • TestFlight — бета-тестирование iOS; Internal / Closed / Open Beta — для Android.
  • Автоматизируйте подпись кода и сборку через Fastlane — это исключает ошибки и ускоряет релиз.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект