TestFlight: тестирование приложений перед публикацией
TestFlight — официальный инструмент Apple для распространения бета-версий приложения тестировщикам до публикации в App Store. Разберём разницу между внутренними и внешними тестировщиками, процесс проверки и работу с обратной связью.
Внутренние тестировщики
- Лимит: до 100 человек.
- Кто может быть — только участники команды с доступом к App Store Connect (роль минимум Developer).
- Проверка не требуется — сборка становится доступна внутренним тестировщикам в течение нескольких минут после загрузки.
- Как добавить: App Store Connect → Users and Access → пригласить с ролью App Manager или Developer → назначить в группу Internal Testing на вкладке TestFlight приложения.
Внешние тестировщики
- Лимит: до 10 000 человек.
- Приглашение: через email или публичную ссылку.
- Первая сборка каждой версии требует Beta App Review — упрощённая проверка Apple, обычно занимает около 24 часов, в отдельных случаях от 4 до 48 часов.
- Последующие сборки той же версии для уже одобренной внешней группы обычно проходят без повторной проверки — если группа тестировщиков и версия не изменились существенно.

Как настроить внешнее тестирование
- Заполните описание бета-версии и контактный email для обратной связи — оба поля обязательны для отправки внешним тестировщикам.
- Загрузите сборку через Xcode или Xcode Cloud.
- Создайте группу External Testing в TestFlight-вкладке приложения.
- Добавьте сборку в группу — это автоматически инициирует Beta App Review для первой сборки.
- После одобрения пригласите тестировщиков по email или поделитесь публичной ссылкой.
Ограничения, о которых часто забывают
- Тестировщик может использовать до 30 устройств для тестирования одного и того же приглашения.
- Можно одновременно распространять до 100 сборок, позволяя тестировать несколько версий параллельно.
- Managed Apple Account, созданный в зарезервированном домене (Apple School Manager / Apple Business Manager), не может использоваться для тестирования — актуально для корпоративных сценариев.
- Сборки, загруженные с пометкой «TestFlight Internal Only» из Xcode Cloud, доступны только внутренним тестировщикам и не могут быть добавлены во внешние группы.

Работа с обратной связью
TestFlight поддерживает несколько каналов обратной связи от тестировщиков:
- Скриншоты с аннотациями — тестировщик может потрясти устройство (shake-to-feedback) прямо в приложении, чтобы приложить скриншот к сообщению; многие тестировщики не знают об этой функции, стоит явно указать в описании бета-версии.
- Автоматические отчёты о крашах — собираются автоматически и доступны в App Store Connect без дополнительной настройки.
- Email обратная связь — тестировщики могут написать напрямую на указанный контактный адрес.
Частые вопросы
Нужен ли отдельный provisioning-профиль для TestFlight?
Нет, используется тот же тип профиля, что и для App Store — Xcode применяет его автоматически при архивировании через «Distribute App».
Можно ли использовать TestFlight без намерения публиковать приложение в App Store?
Формально да, но это не основной сценарий использования — Apple рассчитывает TestFlight именно как этап перед публичным релизом, а не отдельный сервис распространения.
Что происходит со сборкой в TestFlight по истечении времени?
Сборки TestFlight имеют ограниченный срок действия (обычно 90 дней) — по истечении нужно загрузить новую сборку, чтобы тестирование продолжилось.
Этот материал независим и не аффилирован с Apple Inc. Официальная информация — на developer.apple.com/testflight.
Читайте также: Как опубликовать приложение в App Store: пошаговый гайд · Xcode Cloud: настройка CI/CD для iOS-приложений · Apple Developer API и App Store Connect API: начало работы