Интеграция Firebase App Distribution в мобильное приложение

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Интеграция Firebase App Distribution в мобильное приложение
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Интеграция Firebase App Distribution в мобильное приложение

Firebase App Distribution — это не альтернатива TestFlight, это дополнение к нему. TestFlight ограничен 90-дневным сроком сборки и требует ревью от Apple для каждого external тестера. App Distribution раздаёт .ipa и .apk тестерам напрямую, без магазина, за минуты. Для команд с ежедневными билдами — критически важно.

Что обычно идёт не так при интеграции

Самая частая ошибка — пропустить шаг с GoogleService-Info.plist или google-services.json. App Distribution — это Firebase-сервис, и SDK инициализируется через FirebaseApp.configure(). Если plist добавлен только в основной таргет и не включён в target membership тестового таргета — краш на старте при попытке проверить наличие обновлений.

Второй частый сценарий: iOS-приложение собирается через ad-hoc профиль для тестирования, но UDID тестера не добавлен в профиль — устройство просто не установит .ipa. App Distribution автоматически собирает UDID, но добавить их в provisioning profile — ответственность разработчика. Решается через fastlane match с автоматическим обновлением профилей.

Интеграция через Fastlane

Рабочая схема с fastlane:

lane :distribute_firebase do
  # Сборка
  build_ios_app(
    scheme: "MyApp",
    configuration: "Release",
    export_method: "ad-hoc"
  )

  # Загрузка в Firebase App Distribution
  firebase_app_distribution(
    app: "1:123456789:ios:abcdef",
    groups: "qa-team, beta-users",
    release_notes: last_git_commit[:message],
    firebase_cli_token: ENV["FIREBASE_TOKEN"]
  )
end

firebase_cli_token — токен из firebase login:ci. Он хранится в CI/CD secret-переменных (GitHub Actions secrets, GitLab CI variables), не в репозитории.

groups — тестерские группы, созданные в Firebase Console. Группы позволяют дифференцировать доступ: QA-команда получает все билды, бета-пользователи — только стабильные.

Автоматическое уведомление тестеров об обновлениях

SDK App Distribution умеет показывать нативный alert при запуске, если доступна новая версия. Для iOS:

import FirebaseAppDistribution

// AppDelegate.application(_:didFinishLaunchingWithOptions:)
AppDistribution.appDistribution().checkForUpdate { release, error in
    guard let release = release else { return }
    // Показываем alert с release.displayVersion и release.releaseNotes
    let alert = UIAlertController(
        title: "Доступно обновление \(release.displayVersion)",
        message: release.releaseNotes ?? "",
        preferredStyle: .alert
    )
    alert.addAction(UIAlertAction(title: "Обновить", style: .default) { _ in
        UIApplication.shared.open(release.downloadURL)
    })
}

Важно: checkForUpdate работает только для тестеров, авторизованных в Firebase. В production-сборке этого кода быть не должно — #if DEBUG или отдельный флаг сборки.

Android: аналогичная схема

FirebaseAppDistribution.getInstance().updateIfNewReleaseAvailable()
    .addOnProgressListener { updateProgress ->
        // Обновляем прогресс-бар
    }
    .addOnFailureListener { e ->
        if (e is FirebaseAppDistributionException) {
            when (e.errorCode) {
                FirebaseAppDistributionException.Status.NOT_IMPLEMENTED ->
                    // SDK не в тестовой среде — production build
            }
        }
    }

Интеграция в CI/CD без Fastlane

Через Firebase CLI напрямую:

firebase appdistribution:distribute app-release.apk \
  --app $FIREBASE_APP_ID \
  --groups "qa-team" \
  --release-notes "$(git log -1 --pretty=%B)" \
  --token $FIREBASE_TOKEN

Шаг добавляется в GitHub Actions workflow после шага сборки. Время загрузки .ipa размером 50 МБ — около 90 секунд.

Сроки

Интеграция Firebase App Distribution в существующий CI/CD (iOS + Android): 2–4 дня. Настройка тестерских групп, автопроверки обновлений в приложении, интеграция с Fastlane: 1–1.5 недели. Стоимость рассчитывается индивидуально.