TestFlight — офіційна платформа Apple для поширення передрелізних збірок додатків серед тестувальників. Дозволяє розробникам завантажувати бета-версії в App Store Connect, керувати доступом та збирати відгуки до публікації. За даними Apple Developer Documentation, TestFlight підтримує до 10 000 зовнішніх тестувальників через публічне посилання та до 100 внутрішніх — за Apple ID.
Головне
TestFlight — бета-тестова платформа, інтегрована в App Store Connect, для поширення передрелізних збірок додатків до публікації в App Store. Розробники завантажують збірки, заархівовані через Xcode, і поширюють їх серед тестувальників без необхідності поширювати IPA-файли вручну.
Apple придбала TestFlight у 2014 році для заміни Ad Hoc поширення через Provisioning Profiles. Раніше розробники збирали UDID пристроїв, створювали provisioning profile та поширювали IPA через сторонні сервіси. TestFlight автоматизував весь процес: тестувальник встановлює бета-додаток через TestFlight App, а розробник керує доступом через веб-інтерфейс.
За даними WWDC 2024, TestFlight обробляє понад 2 мільйони тестових встановлень щомісяця. Платформа підтримує поширення на всі платформи Apple, включаючи iOS, iPadOS, macOS, tvOS, watchOS та visionOS, що робить її єдиним уніфікованим інструментом бета-тестування в екосистемі Apple.
TestFlight розділяє тестування на два типи: Internal Testing для членів команди (до 100 учасників, збірка доступна відразу після завантаження) та External Testing для зовнішніх користувачів (до 10 000 учасників, потрібна перевірка Beta App Review). Внутрішнє тестування не потребує модерації, що робить його ідеальним для швидкої перевірки збірок всередині команди.
External Testing дозволяє запрошувати тестувальників електронною поштою або через публічне посилання. Після проходження Beta App Review збірка доступна для завантаження всім запрошеним. Для додатків, що публікуються вперше, External Testing є обов'язковим згідно з правилами App Store Review Guidelines.
Робочий процес TestFlight починається з архівації додатка в Xcode та завантаження в App Store Connect через Organizer або Transporter. Після завантаження збірка проходить автоматичну перевірку на валідність та сканування на безпеку.
Внутрішні тестувальники отримують сповіщення про доступну збірку через TestFlight App. Вони можуть встановити додаток та залишати відгуки через вбудований інтерфейс скріншотів та текстових коментарів. Для зовнішніх тестувальників потрібне схвалення Beta App Review, після якого збірка поширюється так само, як внутрішня.
TestFlight автоматично збирає метрики використання: кількість встановлень, краш-логи, скріншоти з анотаціями та відгуки. Розробник бачить ці дані в розділі TestFlight App Store Connect. Всі дані агрегуються за версіями збірок, що спрощує порівняння стабільності різних білдів.
Кожна завантажена в TestFlight збірка має термін дії 90 днів. Після закінчення терміну тестувальники більше не можуть встановити або запустити додаток. Для продовження тестування необхідно завантажити нову збірку зі збільшеним номером версії. Обмеження стимулює розробників регулярно оновлювати збірки.
При наближенні дати закінчення терміну TestFlight надсилає сповіщення розробнику та тестувальникам. Якщо нову збірку не завантажено вчасно, тестування переривається, а учасники втрачають доступ до додатка до появи свіжої версії.
Налаштування TestFlight починається в App Store Connect в розділі TestFlight. Для запуску потрібна як мінімум одна завантажена збірка додатка. Інтерфейс розділений на три основні розділи: збірки, внутрішні тестувальники та зовнішні групи.
Внутрішні тестувальники додаються за Apple ID. Кожен учасник повинен бути запрошений через App Store Connect з роллю, що включає доступ до тестування. Після запрошення тестувальник отримує email та може встановити додаток через TestFlight App на пристрої.
Для зовнішнього тестування створюються групи, що об'єднують тестувальників за сценаріями. Кожна група прив'язується до конкретних збірок. Група може мати публічне посилання для самостійного приєднання — це зручно для open-source проектів або масового бета-тестування. За даними Apple Developer Documentation, публічне посилання може бути відкликане в будь-який момент без втрати доступу вже приєднаних тестувальників.
Завантаження збірки в TestFlight виконується через Xcode Organizer після архівації проекту. Для завантаження потрібен обліковий запис у програмі Apple Developer Program з правами Admin або App Manager в App Store Connect.
Перед завантаженням збірка повинна бути підписана коректним Distribution Certificate та містити Provisioning Profile з App Store дистрибуцією. Xcode автоматично налаштовує підпис через Automatic Signing при активному обліковому записі розробника.
# Upload via xcrun altool (Xcode 15+ uses notarytool)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# Upload to App Store Connect directly
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
Після завантаження збірка проходить автоматичну перевірку: валідація бінарника, сканування на шкідливий код, перевірка відповідності App Store Review Guidelines. Зазвичай перевірка займає від кількох хвилин до години. Статус відображається в App Store Connect в розділі TestFlight.
Для CI/CD (GitHub Actions, Bitrise, Jenkins) використовується xcrun altool або notarytool для завантаження збірки напряму без Xcode. Ключі аутентифікації зберігаються в Keychain або App Store Connect API. Fastlane надає екшн upload_to_testflight для повної автоматизації процесу.
Запрошення тестувальників в TestFlight залежить від типу тестування. Внутрішні тестувальники додаються безпосередньо в App Store Connect за Apple ID та отримують доступ до всіх збірок негайно після завантаження. Зовнішні тестувальники запрошуються через групи із зазначенням конкретних збірок.
Для зовнішнього тестування потрібно пройти Beta App Review — спрощену версію App Review, що перевіряє базову функціональність та відповідність правилам. Перша зовнішня збірка зазвичай проходить перевірку за 1–2 дні, наступні — швидше. Після схвалення всі тестувальники групи отримують сповіщення.
Публічне посилання спрощує запрошення: розробник публікує посилання на сайті або в соцмережах, користувачі переходять за ним та автоматично приєднуються до тестування. TestFlight підтримує до 10 000 учасників на зовнішню групу, а кількість груп не обмежена. Для кожного додатка можна налаштувати кілька груп з різними збірками.
Тестувальники надсилають відгуки через TestFlight App, прикріплюючи скріншоти та анотації. Розробник бачить всі відгуки в App Store Connect, згруповані за збірками. Кожен відгук містить версію ОС, модель пристрою та часову мітку, що полегшує відтворення та усунення багів.
Публікація додатка з TestFlight в App Store не потребує повторної збірки. Достатньо вибрати затверджену бета-збірку в App Store Connect та натиснути Submit for Review. Та ж збірка, яка пройшла бета-тестування, надсилається на фінальний App Review без перекомпіляції.
Це гарантує, що в продакшн потрапляє саме та версія, яку тестували учасники, виключаючи ризики відмінностей між бета- та релізними збірками. Після проходження фінального App Review збірка автоматично публікується в App Store відповідно до заданих правил Availability.
Перед публікацією розробнику необхідно оновити метадані: опис версії, скріншоти для нової версії ОС та інформацію про зміни. TestFlight збірки, які не були надіслані в App Store, автоматично видаляються через 90 днів після завантаження разом з усіма даними тестування.
Часті запитання
Автоматична перевірка зазвичай займає від 5 хвилин до години. Beta App Review для зовнішнього тестування — від кількох годин до 2 днів. Для повторних збірок перевірка проходить швидше, оскільки Apple враховує історію попередніх рев'ю.
TestFlight доступний лише учасникам Apple Developer Program (99$ на рік). Без підписки завантаження збірок в App Store Connect неможливе. Для Ad Hoc поширення без підписки знадобиться Enterprise-акаунт або SideStore.
Ad Hoc вимагає збору UDID пристроїв, створення Provisioning Profile та ручного поширення IPA. TestFlight автоматизує весь процес: розробник завантажує збірку, тестувальник встановлює через TestFlight App без provisioning профілів та UDID.
Термін життя збірки в TestFlight — 90 днів з моменту завантаження. Після закінчення терміну тестувальники не можуть встановити або запустити додаток. Для продовження тестування необхідно завантажити нову збірку зі збільшеним номером версії.
TestFlight підтримує macOS-додатки починаючи з macOS 11 Big Sur. Тестувальники встановлюють бета-версію через TestFlight App на Mac. Процес завантаження та управління не відрізняється від iOS-версії: архівація в Xcode, завантаження через Organizer.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також