# TestFlight: как протестировать iPhone-приложение до ревью

> Внутренние и внешние тестировщики, бета-ревью, публичная ссылка, билды на 90 дней: TestFlight простыми словами и чек-лист перед отправкой в Apple.

Оригинальная страница: [TestFlight: как протестировать iPhone-приложение до ревью](https://devoria.fr/ru/blog/testflight-testirovanie-iphone-prilozheniya)
Автор: [Mehdi Azizi](https://devoria.fr/ru/mehdi-azizi)
Опубликовано: 2026-09-23
Последняя правка контента: 2026-10-09


## Что такое TestFlight и зачем он нужен?

TestFlight это сервис Apple, который позволяет установить твоё приложение на настоящие iPhone до его выхода в App Store. Ты загружаешь билд в App Store Connect, приглашаешь тестировщиков, и они ставят его через приложение TestFlight, бесплатное в App Store. Тестировщики бывают двух типов: внутренние, до 100 участников твоей команды, без проверки Apple; и внешние, до 10 000 человек, приглашённых по e-mail или по публичной ссылке, после бета-ревью твоего первого билда. Каждый билд доступен для тестирования 90 дней.

| Критерий          | Внутренние тестировщики         | Внешние тестировщики        |
| ----------------- | ------------------------------- | --------------------------- |
| Максимум          | 100                             | 10 000                      |
| Доступ к аккаунту | Да, с ролью                     | Нет                         |
| Приглашение       | Добавление во внутреннюю группу | E-mail или публичная ссылка |
| Бета-ревью Apple  | Нет                             | На первом билде             |
| Для кого          | Ты, партнёр, близкий человек    | Друзья, первые пользователи |

Чтобы пользоваться TestFlight, нужен [платный аккаунт Apple Developer](https://devoria.fr/ru/blog/akkaunt-razrabotchika-apple-cena): [с бесплатным аккаунтом сервис недоступен](https://developer.apple.com/support/compare-memberships/). Весь этот гайд исходит из того, что он у тебя есть, причём в рамках стандартной программы: корпоративная программа Apple доступа к TestFlight не даёт.

В моих приложениях каждый билд, отправленный через EAS Submit, проходит через TestFlight и мой iPhone, прежде чем уйти на ревью. Именно там я нахожу проблемы, которые не видны во время разработки.

## Как загрузить билд в TestFlight

Билд это скомпилированная и подписанная версия твоего приложения: если подпись неправильная, Apple отклонит его при загрузке с ошибкой ITMS-90034. Чтобы билд появился в TestFlight, его нужно отправить в App Store Connect. С Expo это `eas build --platform ios`, затем `eas submit --platform ios`, причём с достаточно свежим образом сборки, чтобы избежать ITMS-90725. [Согласно документации Expo](https://docs.expo.dev/submit/ios/), билд появляется в TestFlight после обработки на стороне Apple, обычно через 10-15 минут. Всё это можно сделать с PC: гайд [публикация iOS-приложения без Mac](https://devoria.fr/ru/blog/publish-ios-app-without-mac-expo-eas) подробно описывает всю цепочку.

Две вещи часто стопорят в первый раз:

- **Номер билда должен меняться при каждой загрузке.** Apple не примет два билда с одинаковым номером для одной версии. В EAS включи автоинкремент и забудь об этом.
- **Вопрос о шифровании.** Пока ты не ответил на вопрос об использовании шифрования, билд висит со статусом Missing Compliance. Можно отвечать каждый раз в App Store Connect или указать это один раз в конфигурации приложения.

## Внутренние тестировщики: твоя команда, без ожидания

Внутренние тестировщики это пользователи твоего аккаунта App Store Connect с назначенной ролью. [Apple разрешает до 100 таких](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview), и каждый может [установить приложение на несколько устройств](https://developer.apple.com/testflight/), до 30.

Их главный плюс: никакого бета-ревью. Как только билд прошёл обработку без автоматических ошибок вроде ITMS-90717, ты добавляешь его во внутреннюю группу, и он сразу доступен. Это подходящая группа для тебя, а также для партнёра или близкого человека, которому ты даёшь доступ к аккаунту.

Ограничение: их нужно добавлять как пользователей твоего аккаунта App Store Connect. Для незнакомых людей это не годится.

## Внешние тестировщики и бета-ревью

Внешним тестировщикам доступ к твоему аккаунту не нужен. [Можно пригласить до 10 000 человек](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview), по e-mail или по публичной ссылке. Это подходящая группа для друзей, первых пользователей, сообщества.

Взамен Apple проверяет билд, прежде чем открыть его им. [Когда ты добавляешь первый билд версии во внешнюю группу](https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers), он уходит на бета-ревью. Следующие билды той же версии не обязательно требуют полной проверки.

Перед отправкой App Store Connect запросит информацию для тестирования:

- **описание беты**, которое говорит тестировщикам, на что смотреть;
- **e-mail для отзывов**;
- **твои контактные данные**, чтобы Apple могла с тобой связаться.

> Бета-ревью это не ревью App Store. Билд, одобренный в TestFlight, всё ещё могут отклонить при публикации.

Бета-ревью проверяет, что билд соответствует правилам, но финальное ревью смотрит ещё и на страницу приложения, подписки, юридические тексты и весь пользовательский опыт. Держи в голове типичные причины отказа, о которых я рассказываю в статье [почему Apple отклоняет приложение](https://devoria.fr/ru/blog/otkaz-apple-app-store-prichiny).

## Как пригласить тестировщиков по публичной ссылке

Публичная ссылка это самый простой способ дать протестировать приложение людям, которых ты пока не знаешь. Вот [инструкция Apple](https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers) с названиями из интерфейса на английском:

1. В App Store Connect открой своё приложение, затем вкладку **TestFlight**.
2. В разделе **External Testing** выбери внешнюю группу.
3. Нажми **Create Public Link**.
4. Выбери **Open to Anyone**, чтобы открыть ссылку для всех, или **Filter by Criteria**, чтобы ограничить её определёнными устройствами и версиями iOS.
5. При желании задай лимит тестировщиков через **Set Limit**.

Дальше делишься ссылкой где угодно: в сообщении, соцсети, e-mail. Человек ставит приложение TestFlight, открывает ссылку и принимает приглашение.

Две вещи, которые стоит знать, прежде чем раздавать её широко:

- **Задай лимит.** Если ссылка разойдётся шире, чем ты планировал, ты сохранишь контроль над числом тестировщиков.
- **Тестировщики по публичной ссылке анонимны.** App Store Connect показывает по ним только дату установки, сессии и падения. Если хочешь знать, кто что тестировал, лучше приглашай по e-mail.

## Сколько живёт билд в TestFlight?

[Билд доступен тестировщикам 90 дней](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview). После этого он истекает, и тестировщики больше не могут его открыть. Если бета длится дольше, просто загрузи новый билд до истечения срока.

На практике ты будешь загружать новые билды гораздо чаще: после каждого важного исправления. Каждый новый билд, добавленный в группу, предлагается тестировщикам, и они получают его в приложении TestFlight.

## Как собирать отзывы тестировщиков

В TestFlight встроена система отзывов: [тестировщик делает скриншот в твоём приложении, может добавить пометки и отправить его тебе](https://developer.apple.com/testflight/). Если приложение падает, ты получаешь краш-репорт, а тестировщик может добавить контекст. Всё это лежит в App Store Connect.

Это полезно, но для разбора конкретного падения этого мало. В свои приложения я добавляю Sentry, который присылает ошибку с конкретной строкой кода, и PostHog, который показывает, где пользователи бросают приложение. Оба работают и в билде TestFlight, и в продакшене.

## Как тестировать подписки в TestFlight

Если твоё приложение продаёт подписку, именно в TestFlight ты проверяешь, что она реально работает. [Покупки в билде TestFlight проходят через тестовую среду Apple](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testing-subscriptions-and-in-app-purchases-in-testflight/): деньги с тестировщиков не списываются. Продления ускорены: каждая подписка продлевается раз в день, максимум шесть раз за неделю, независимо от её реального срока.

Проверь как минимум, что отображаемые цены правильные, что покупка действительно открывает приложение и что кнопка восстановления находит подписку после переустановки. Для управления подписками в своих приложениях я использую RevenueCat; вся настройка, от продуктов в App Store Connect до paywall, описана на странице [встроенные подписки iOS](https://devoria.fr/ru/expertise/ios-in-app-subscription).

## Что проверить перед отправкой в Apple

Это список, по которому я прохожусь перед каждой отправкой на ревью. Каждый пункт соответствует причине отказа или падению, которого можно избежать.

### Первый запуск

- Удали приложение, переустанови его из TestFlight, открой. Именно так сделает ревьюер.
- Пройди онбординг целиком, ничего не пропуская.
- Откажи в каждом разрешении (уведомления, камера, геолокация) и убедись, что приложение продолжает работать.

### Деньги

- Paywall показывает цены, срок и ссылки на условия использования и политику конфиденциальности.
- Покупка работает, восстановление тоже.
- Все настроенные продукты видны ревьюеру: [guideline 2.1](https://developer.apple.com/app-store/review/guidelines/) требует, чтобы встроенные покупки были полными, видимыми и рабочими.

### Сложные условия

- Авиарежим и медленная сеть: понятное сообщение, а не белый экран.
- Самый маленький и самый большой iPhone, которые ты поддерживаешь: ничего не обрезано, ничего не закрыто клавиатурой. Как раз обрезанный экран на маленьком iPhone стоил мне отказа для Solys.
- Длинные тексты, если приложение переведено.

### Материалы для ревьюера

- Если приложение требует входа, демо-аккаунт в заметках для ревью, и бэкенд должен быть включён. Guideline 2.1 прямо этого требует.
- Заметки для ревью, которые в двух предложениях объясняют, что делает приложение и где найти главную функцию.

Если приложение всё же отклонили, на странице [приложение отклонено Apple](https://devoria.fr/ru/expertise/app-rejected-by-apple) объясняется, как ответить и не потерять неделю. А общую картину публикации, от страницы приложения до релиза, смотри в статье [публикация приложения в App Store](https://devoria.fr/ru/expertise/publish-app-on-app-store).

## Таблица проверки для твоего билда

[Скачай таблицу из 16 сценариев в формате CSV](https://devoria.fr/ressources/recette-premiere-app-ios.csv). В ней разделены подготовка, действие, ожидаемый результат и наблюдаемое подтверждение. Импортируй её в Numbers, Excel или Google Sheets, затем заполни версию, устройство и результат каждой проверки.

Для вымышленного читательского дневника «сохранить страницу» недостаточно: отметь страницу 24, полностью закрой приложение, снова запусти его и найди это значение. Тест, который не был выполнен, остаётся «Нужно протестировать». Если в приложении нет подписок, укажи «Неприменимо» для сценариев покупки с этой причиной.

Таблица это отправная точка, которую нужно адаптировать, а не сертификация. Там же лежат [заметки для App Review и другие бесплатные шаблоны](https://devoria.fr/ru/resources), чтобы объяснить ревьюеру сценарий, который ты действительно проверил.

## От TestFlight к App Store

TestFlight это этап, на котором приложение становится настоящим: оно работает на реальном iPhone, в руках реальных людей. В маршруте [iOS Kit](https://devoria.fr/ru/kits/ios) это второй этап: собрать ядро приложения и протестировать его на своём iPhone через TestFlight, прежде чем подключать подписки и готовить публикацию.

После TestFlight идёт ревью Apple: [Apple Review Kit](https://devoria.fr/ru/kits/review-apple) содержит мой чек-лист перед отправкой и заметки для ревьюера. На главной показаны четыре этапа, чтобы [создать своё мобильное приложение](https://devoria.fr/ru) с Claude Code.

Никто не может гарантировать, что Apple примет твоё приложение: решает Apple.

## Частые вопросы

### Как протестировать iPhone-приложение через TestFlight?

Загрузи билд в App Store Connect и добавь его в группу тестировщиков. С Expo ты собираешь его через EAS Build и отправляешь через [EAS Submit](https://devoria.fr/ru/blog/eas-submit-ios-publish-expo-app-store): он появляется в TestFlight после обработки Apple, по данным Expo обычно через 10-15 минут. Тестировщики ставят его через приложение TestFlight, бесплатное в App Store. Нужен платный аккаунт Apple Developer.

### Как создать ссылку TestFlight для приглашения тестировщиков?

В App Store Connect открой вкладку TestFlight своего приложения, выбери группу в разделе External Testing и нажми Create Public Link. Выбери Open to Anyone или Filter by Criteria, затем задай лимит через Set Limit. Тестировщики по публичной ссылке остаются анонимными: если хочешь знать, кто что тестировал, лучше приглашай их по e-mail.

### Заменяет ли бета-ревью TestFlight ревью App Store?

Нет. Бета-ревью проверяет, что билд соответствует правилам, но финальное ревью смотрит ещё и на страницу приложения, возрастной рейтинг, подписки, юридические тексты и весь пользовательский опыт. Поэтому билд, одобренный в TestFlight, всё ещё могут отклонить при публикации. Бета-ревью запускают только внешние тестировщики, на первом билде версии: внутренние тестировщики его не проходят вообще.

### Сколько тестировщиков можно пригласить в TestFlight?

Можно пригласить до 100 внутренних и до 10 000 внешних тестировщиков. Внутренние это участники твоего аккаунта App Store Connect, без бета-ревью, и каждый может установить приложение максимум на 30 устройств. Внешних приглашают по e-mail или по публичной ссылке после бета-ревью первого билда. Каждый билд доступен для тестирования 90 дней.

### Можно ли протестировать подписку в TestFlight без списания денег?

Да, покупки в билде TestFlight проходят через тестовую среду Apple: деньги с тестировщиков не списываются. Продления ускорены: каждая подписка продлевается раз в день, максимум шесть раз за неделю, независимо от её реального срока. Проверь как минимум отображаемые цены, разблокировку приложения и восстановление после переустановки. Полная настройка описана на странице [встроенные подписки iOS](https://devoria.fr/ru/expertise/ios-in-app-subscription).

### Что проверить в TestFlight перед отправкой приложения в Apple?

Переустанови приложение из TestFlight, как это сделает ревьюер, и пройди онбординг целиком. Откажи в каждом разрешении, проверь покупку и восстановление, затем попробуй авиарежим, самый маленький и самый большой iPhone, которые ты поддерживаешь. Если приложение требует входа, подготовь демо-аккаунт в заметках для ревью и держи бэкенд включённым.


## Твой проект

[Apple Review Kit](https://devoria.fr/ru/kits/review-apple): Мой чек-лист для ревью App Store, исправленные отказы Apple, заметки для ревьюера и два skills для Claude Code, которые проверяют твоё приложение. 29 €.

[iOS Kit](https://devoria.fr/ru/kits/ios): Создай приложение для iPhone с Claude Code: стартовый код моих приложений, skills для проверки его работы и наборы Apple Review Kit, App Store Screenshots Kit и ASO Kit. 129,99 €.
