Настройка автоматической раздачи билдов через Firebase App Distribution
Firebase App Distribution — самый простой способ доставлять тестовые билды команде без App Store Review и без Google Play Internal Testing, если нужно обновление прямо сейчас. Подходит и для Android APK, и для iOS IPA. Тестировщики получают ссылку на email, устанавливают профиль (iOS) или разрешают установку из неизвестных источников (Android) — и готово.
Настройка для Android через Fastlane
Fastlane-плагин firebase_app_distribution — самый удобный вариант для автоматизации:
lane :distribute_android do
gradle(
task: "assemble",
build_type: "Debug",
flavor: "staging"
)
firebase_app_distribution(
app: ENV["FIREBASE_APP_ID_ANDROID"],
firebase_cli_token: ENV["FIREBASE_CLI_TOKEN"],
groups: "qa-team, internal-testers",
release_notes: "Branch: #{git_branch}\nCommit: #{last_git_commit[:message]}"
)
end
FIREBASE_CLI_TOKEN получается командой firebase login:ci один раз на локальной машине, результат кладётся в секреты CI. Альтернатива — Service Account JSON (Google Cloud IAM), предпочтительнее для долгосрочной автоматизации, так как login:ci токены периодически истекают.
Настройка для iOS
Для iOS всё сложнее из-за подписи. Нужен .ipa файл, подписанный provisioning profile с типом ad-hoc или development. Устройства тестировщиков должны быть зарегистрированы в Apple Developer Portal и включены в профиль.
lane :distribute_ios do
match(type: "adhoc", readonly: true)
build_app(
scheme: "MyApp-Staging",
export_method: "ad-hoc"
)
firebase_app_distribution(
app: ENV["FIREBASE_APP_ID_IOS"],
firebase_cli_token: ENV["FIREBASE_CLI_TOKEN"],
groups: "ios-testers",
release_notes: "Build #{build_number}"
)
end
Боль iOS-части: при добавлении нового тестировщика нужно добавить его UDID в Developer Portal и пересобрать provisioning profile. match + sigh автоматизирует регистрацию устройства (register_devices), но UDID нужно получить от тестировщика вручную или через Firebase App Distribution — он умеет собирать UDID автоматически через специальный onboarding-URL.
Firebase App ID
FIREBASE_APP_ID — это не bundleIdentifier. Это строка вида 1:123456789:android:abcdef. Берётся из Firebase Console → Project Settings → Your apps. Частая ошибка — перепутать iOS и Android App ID.
Интеграция в CI без Fastlane
Если Fastlane не используется, Firebase CLI умеет загружать напрямую:
firebase appdistribution:distribute app-release.apk \
--app "$FIREBASE_APP_ID" \
--groups "qa-team" \
--release-notes "Automated build $CI_BUILD_NUMBER" \
--token "$FIREBASE_CLI_TOKEN"
Это работает в любом CI: GitHub Actions, GitLab CI, Bitrise, CircleCI.
Процесс
Создание Firebase проекта (или использование существующего) → настройка App Distribution → получение токена авторизации → написание Fastlane lane или shell-скрипта → интеграция в CI → настройка групп тестировщиков → тест-запуск.
Срок: 1–3 дня. Стоимость рассчитывается индивидуально.







