Настройка автоматичної раздачі білдів через 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 файл, підписаний через ad-hoc або development provisioning profile. Пристрої тестувальників повинні бути зареєстровані в 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 дні. Стоимость рассчитывается индивидуально.







