Тестфлайт что это такое
Сервисы дистрибуции мобильных приложений для iOS. Часть 1: TestFlight
С каждым годом становится всё очевиднее, что для распространения тестовых версий iOS-приложений нужны специализированные сервисы. Это актуально не только для компаний, занимающихся разработкой приложений в “промышленных масштабах”, но и для инди-разработчиков. Причины: увеличение количества устройств с “нестандартным”/”не кратным” размером экрана, отличия в архитектуре центрального и графических процессоров — всё то, что раньше было повседневностью для разработки под Android, теперь становится справедливым и для iOS.
Исторически самым популярным сервисом дистрибуции являлся TestFlight — практически идеал, как в техническом отношении, так и в юзабилити. Однако, после приобретения компанией Apple в начале 2014 года, сервис претерпел ряд неоднозначных изменений, которые с одной стороны сказались негативно на его позиции лидера, а с другой дали шанс альтернативным сервисам побороться за первое место и предложить как минимум равноценную замену, а может быть и что-то более удобное и функциональное.
В своей серии статей я собираюсь поделиться результатами сравнения нескольких сервисов дистрибуции и в результате помочь другим, кто стоит перед таким же вопросом выбора.
Система оценки: сервисы будут оценены по 10-балльной шкале по каждому из разделов (Регистрация и интеграция, Основной функционал, Дополнительный функционал, Continuous Integration). Суммарная оценка позволит определить победителя (итоговое заключение войдет в последнюю часть обзора).
TestFlight от Apple
Регистрация и интеграция
Пользователи из группы Admin обладают теми же правами, что и пользователи группы Technical, а также могут добавлять новых пользователей в список Internal Testers.
На данный момент установка или использование какого-либо специализированного SDK не требуется.
Основной функционал
Если сравнивать новую версию TestFlight с тем, что было доступно разработчикам ранее в рамках стандартных сервисов Apple, то она, в чем-то, несомненно, является шагом вперед. Так, например, количество тестеров увеличено с условных 100 до 1125 (из которых 100 — это доступные и раньше устройства для AdHoc распространения, 25 — это внутренние тестировщики (Internal Testers), а 1000 — внешние (External Testers)), причем если ранее привязка осуществлялась к устройству, то теперь уникальным идентификатором является Apple ID, а значит каждый тестер может проверить работу приложения на всех доступных ему (и, конечно, поддерживаемых приложением) устройствах.
Примечание (от 15 июня 2015): количество устройств, доступных при использовании AdHoc provision profiles с с 8 июня 2015 года было изменено со 100 суммарно, на 100 на каждое семейство устройств (изменение произошло после объявления на WWDC об объединении всех developers programs в одну).
Разница между внутренними и внешними тестировщиками заключается в дополнительном шаге, который добавляется во втором случае: тестовая версия приложения должна быть отправлена для обзора и одобрена специалистами Apple (Beta App Review). Причем первоначальный обзор будет проводиться более тщательно, а все последнующие могут проходить быстрее (но не обязательно). Это, конечно, накладывает определенные ограничения на процесс разработки и требует дополнительного планирования фаз тестирования приложения, с учетом неопределенности сроков прохождения обзора (как и в случае с обычным обзором приложений перед публикацие в AppStore, при отказе в публикации, повторная заявка рассматривается снова в порядке очереди).
Однако есть и некоторые уникальные возможности: так, например, клиент сервиса (приложение TestFlight) единственный, кто наверняка знает статус установки тестовой версии, альтернативные решения попросту не имеют возможности использовать системные функцие, позволяющие реализовать подобное.
Примечание: статус установки — смена индикации процесса установки, привычная пользователям AppStore. Когда поочередно статус меняется Get — Install — Installing — Open. В других сервисах дистрибуции эта цепочка выглядит так: Install — Installing — Install — приложения попросту не знают результат, был ли установлен тестовый дистрибутив или нет. В случае же с Apple TestFlight цепочка имеет привычный вид: Install — Installing — Open.
Иконка обновленного приложения TestFlight (правильнее будет сказать, что это абсолютно новое native приложение, разработанное в Apple). Ниже пример иконки тестовой версии приложения — оранжевая “точка” позволяет определить, что это не версия из AppStore.
“Страховка” Apple от обвинений в распространении спама.
Apple не разрешает загрузку дистрибутивов без изменения версии или номера сборки.
Достаточно лаконичная и понятная страница администрирования версий приложения для тестирования.
Письмо-приглашение для участия в тестировании, HTML-форматирование не слишком оптимизировано для мобильных платформ (справедливости ради, хочу отметить, что приложение Mail отображает такие письма корректно, но письма от других сервисов отображаются нормально и в OWA).
Приложение TestFlight: информация о доступном для тестирования приложении.
Приложение TestFlight единственное умеет определять результат установки тестовой версии (кнопка Install поменялась на Open) — преимущество, полученное с переходом к Apple.
Письмо с отправленным из приложения TestFlight отзывом. Кроме скудного форматирования и невозможности добавить вложения, можно отметить еще один недостаток: отправленные отзывы попадают только в почтовый ящик, в iTunes Connect эта информация не сохраняется и недоступна.
Резюмируя, можно сказать, что обновленная версия TestFlight просто работает. В данный момент она не имеет особых конкурентных преимуществ (речь идёт о функционале, а не неоспоримом преимуществе — принадлежности компании Apple, которое пока в большей мере является потенциалом).
Дополнительный функционал
На данный момент, к сожалению, компания Apple берет только числом, а не умением. Из явного преимущества можно отметить разве что гораздо большее количество бета-тестеров, которое можно задействовать для внешнего тестирования: на порядок больше, чем у всех остальных альтернативных решений (причина ясна: компания сама контролирует условия распространения приложений и имеет преимущество перед решениями третьих сторон).
Обновление (5 мая 2015): с релизом Xcode 6.3 разработчикам стал доступен Crashes Organizer. Новый функционал, несомненно, хороший признак того, что Apple продолжает развивать свои сервисы, но, к сожалению, компания всё ещё отстаёт от других сервисов:
When you open the Crashes organizer, Xcode begins refreshing the crash reports for your apps. Xcode downloads the top crash reports—crash reports with the most number of occurrences on unique devices—that occurred during the past two weeks. However, there may be up to a three day delay between when you first distribute your app and when crash reports are available in Xcode.
Три дня задержки и период архивного доступа в две недели выглядит несколько обескураживающе.
Continuous Integration
Примечание: описанные далее нюансы использования сервисов как части непрерывной интеграции (continuous integration) в данном обзоре подразумевают, что она будет делаться на основе решения, предлагаемого компание Apple. То есть при помощи Mac OS X Server и Xcode bots — подробно на организации такой интеграции я не буду останавливаться, возможно это станет темой для отдельной статьи. Желающие могут ознакомиться с темой самостоятельно, например, обратившись к официальному руководству от Apple.
Каким бы странным это не казалось, но на данный момент не существует возможности для публикации приложений в Apple TestFlight в автоматическом режиме. Я надеюсь, что этот большой недостаток будет исправлен компанией в одном из ближайших крупных обновлений Xcode, тем более что в оригинальном TestFlight такая возможность имелась.
Итого суммарная оценка по всем разделам: 15 баллов.
Каждому по тысяче: еще раз о Testflight
Трудно отыскать iOS-разработчика, никогда не пользовавшегося для тестирования своих приложений сервисом TestFlight, или хотя бы не слышавшего о нем. Его популярность в феврале этого года подтвердила сама Apple, купив компанию Burstly, благодаря которой в свое время появился TestFlight.
Как известно, Apple не из тех, кто бросает деньги на ветер — 9 сентября Apple представила TestFlight в App Store уже под своим брендом.
До прошлой недели некоторые разработчики могли пользоваться сервисом, скачав приложение, после релиза iOS 8.1 сделала инструментом общедоступным, значительно расширив при этом количество бета-тестеров, которых каждый девелопер может пригласить, разослав им через iTunes Connect приглашения со своего email-адреса.
На сайте Developer Center открылся специальный раздел TestFlight, который официально стал частью инструментария для разработки iOS-приложений и основным ресурсом для бета-тестеров, где они могут прямо из приложения скачивать новые билды тестируемых игр и приложений, и отправлять отчеты. Основные отличия от TestFlight, которым мы пользовались и год, и два назад:
Получив инвайт для бета-тестирования приложения в TestFlight и используя ссылку, тестеры скачивают официальное приложение сервиса из App Store, минуя этапы поиска и отсылки разработчику UDID девайса для участия в тестировании и последующей установки специального профиля на свое устройство. О появлении нового билда тестируемого приложения также уведомит TestFlight (ранее для этой цели использовались сообщения по e-mail).
Разработчик может одновременно тестировать до 10 различных приложений. При загрузке бета-сборки из Xcode добавляем и имена и email будущих тестеров, которых приглашаем в iTunes Connect. Инструкции по подготовке беты и настройки листа тестеров в видеотуториале – здесь и здесь.
Тестеры делятся на две группы: внутренние (25 членов команды и особо доверенных лиц с более широкими техническими полномочиями, каждый может использовать до 10 устройств) и внешние – все остальные.
Как только разработчик счел приложение готовым для внешнего тестирования, он приглашает до 1000 новых тестеров. Возможность открыть тысяче сторонних бета-тестеров доступ к приложению разработчик получает после прохождения Beta App Review, подтверждающего соответствие испытываемой программы App Store Review Guidelines – то есть правила те же, что и для публикаций пользовательских версий приложений. Для тестирования своими силами, разработчик не обязан посылать приложение на Beta App Review.
Чем больше тестеров – тем лучше. Теперь можно тестировать программы с помощью не только довольно узкого круга искушенных экспертов, но и широкой пользовательский аудитории, каждый из которой со своей колокольни способен подсказать то, чего вашему приложению, возможно, как раз остро недостает.
Использование TestFlight для распространения приложений Xamarin.iOS
Теперь сервис TestFlight принадлежит компании Apple и является основным способом бета-тестирования приложений Xamarin.iOS. В этой статье приводятся все этапы процесса TestFlight — от отправки приложения до работы с iTunes Connect.
Бета-тестирование является неотъемлемой частью цикла разработки программного обеспечения, и существует множество кроссплатформенных предложений для упрощения этого процесса, таких как HockeyApp, Applause и, конечно, встроенный инструмент бета-тестирования Google Play для приложений Android. Этот документ посвящен TestFlight компании Apple.
TestFlight — служба бета-тестирования Apple для приложений iOS, она доступна только через iTunes Connect. В настоящее время служба доступна для приложений iOS 8.0 и более поздних версий. TestFlight позволяет участвовать в бета-тестировании как внутренним, так и внешним пользователям, а проверка бета-версии приложения, необходимая для внешнего тестирования, значительно упрощает процесс финальной проверки при публикации в магазине.
Ранее двоичный файл создавался в среде Visual Studio для Mac и отправлялся на веб-сайт TestFlightApp для распространения среди тестировщиков. Новая процедура принесла с собой ряд улучшений, позволяющих публиковать в магазине приложений качественные и хорошо протестированные приложения. Пример:
Требования
Через TestFlight можно протестировать только приложения для iOS 8.0 и более поздних версий.
Все тестировщики должны тестировать приложение как минимум на устройстве с iOS 8. Тем не менее рекомендуется проводить тестирование во всех версиях iOS
Подготовка
Чтобы протестировать сборку в TestFlight, необходимо создать Профиль распространения App Store с новым назначением для бета-тестирования. Это назначение разрешает бета-тестирование в TestFlight, все новые профили распространения App Store автоматически содержат это назначение. Для создания нового профиля выполните пошаговую инструкцию в руководстве Создание профиля распространения.
Можно указать, что профиль распространения содержит назначение для бета-тестирования, в процессе проверки сборки в Xcode, как показано ниже:
Работа с TestFlight
Следующая инструкция описывает шаги, необходимые для начала использования TestFlight для бета-тестирования приложения:
Создание записи iTunes Connect
Войдите на Портал iTunes Connect, используя учетную запись разработчика Apple.
Выберите Мои приложения:
На экране Мои приложения нажмите кнопку в левом верхнем углу экрана, чтобы добавить новое приложение. Если у вас есть учетные записи разработчика iOS и Mac, будет предложено выбрать тип нового приложения.
Откроется окно отправки данных Новое приложение iOS, которое должно содержать в точности те же сведения, что и файл Info.plist вашего приложения
Дополнительные сведения о создании новой записи iTunes Connect см. в руководстве Создание записи iTunes Connect.
Заполнение формы отправки для нового приложения iOS
Форма должна в точности отражать данные в файле Info.plist, как показано ниже:
Отправка приложения
После создания записи iTunes Connect можно отправить новые сборки. Помните, что сборки должны иметь новое назначение для бета-тестирования.
Сначала нужно создать финальную сборку в среде разработки, затем отправить приложение в Apple через приложение Application Loader или функцию архивирования в Xcode.
Создание архива
Чтобы выполнить сборку двоичного файла в Visual Studio для Mac, необходимо использовать функцию Архивирование. Щелкните правой кнопкой мыши на проекте и выберите Архивирование для публикации, как показано ниже:
Дополнительные сведения см. в руководстве Сборка для распространения.
Подписывание и распространение приложения
Дополнительные сведения об этой процедуре см. в разделе Отправка приложения в Apple.
Отправка сборки
Мастер публикации запустит программу Application Loader для загрузки сборки в iTunes Connect. Выберите параметр доставить приложение и отправьте созданный выше файл. Application Loader проверит и отправит сборку в iTunes Connect.
Дополнительные сведения об этой процедуре см. в разделе Отправка приложения в Apple.
Финальная сборка
Поскольку подключаемый модуль Xamarin для Visual Studio не поддерживает архивирования приложений Xamarin.iOS для публикации в App Store, существует два варианта для публикации приложения iOS из Visual Studio. Эти особые значения приведены ниже.
Оба этих варианта описаны в руководстве Сборка для распространения.
Отправка сборки
Для отправки приложения в Apple необходимо переместить узел сборки и воспользоваться программой Application Loader, которая устанавливается как часть Xcode. Дополнительные сведения о доступе к программе Application Loader см. в руководстве Apple Доступ к Application Loader.
Дополнительные сведения об этой процедуре см. в разделе Отправка приложения в Apple.
В руководстве Публикация в App Store эти шаги описаны более подробно, обратитесь к этому руководству, если хотите глубже понять процесс отправки приложения в App Store.
При возвращении к разделу Мои приложения в iTunes Connect вы должны увидеть, что приложение успешно отправлено. Теперь вы готовы к проведению бета-тестирования!
Проведение бета-тестирования
Добавление метаданных
Чтобы начать использовать TestFlight, перейдите к вкладке Предварительный выпуск приложения. Появится три вкладки со списком сборок, внутренних тестировщиков и внешних тестировщиков, как показано ниже:
Чтобы добавить метаданные к приложению, нажмите номер сборки и затем TestFlight:
В разделе Сведения о тестировании вы можете предоставить тестировщикам важные сведения, касающиеся приложения, например:
Обратите внимание, что эти метаданные не требуются для внутренних тестировщиков, но требуются для внешних тестировщиков.
Запуск бета-тестирования
Когда будете готовы к тестированию приложения, включите переключатель Бета-тестирование TestFlight для требуемой версии:
Тестирование каждой сборки остается активным в течение 60 дней с даты включения переключателя «Бета-тестирование TestFlight». На странице Сведения о тестировании отображается количество оставшихся дней для каждой сборки:
Тестирование можно прервать в любое время.
Внутренние тестировщики
Внутренние тестировщики — это члены команды разработчиков, которым в iTunes Connect была назначена одна из следующих ролей:
Каждую сборку можно предоставить не более чем 100 пользователям, причем каждый из них может выполнять тестирование на 30 устройствах.
Чтобы добавить тестировщиков, перейдите к Пользователи и роли на начальном экране iTunes Connect:
Откроется список существующих пользователей iTunes Connect. Чтобы выбрать пользователя, нажмите на его имя, включите переключатель Внутренний тестировщик и затем нажмите кнопку Сохранить:
Чтобы добавить пользователя, которого нет в списке, нажмите + рядом с надписью + и укажите имя, фамилию и адрес электронной почты для создания учетной записи. Для активации учетной записи необходимо, чтобы пользователь подтвердил свой адрес электронной почты:
если вы вернетесь в раздел » мои приложения» > внутренних тестировщиков, вы увидите пользователей, добавленных для TestFlight внутренней бета-тестирования:
Вы можете пригласить этих тестировщиков, выбрав имя пользователя и нажав на кнопку Пригласить. Они получат на электронную почту приглашение для тестирования приложения.
Можно просмотреть состояние приглашения в столбце «Состояние» на странице «Внутренние тестировщики»:
Внешние тестировщики
Чтобы отправить приложение на проверку, нажмите Отправить на проверку бета-версии напротив номера версии, как показано на рисунке ниже:
Для передачи на проверку необходимо ввести все необходимые метаданные на странице «TestFlight бета-версия».
Теперь можно приступить к подготовке приглашений и добавлению до 10 000 внешних тестировщиков на вкладке «Внешние тестировщики». Для этого необходимо ввести их адрес электронной почты, имя и фамилию, как показано на рисунке ниже. Указываемый адрес электронной почты необязательно должен совпадать с Apple ID, это только адрес, на который тестировщик получит приглашение.
Также для упорядочивания можно распределить внешних тестировщиков по группам.
После того как вы открыли сведения о внешних тестировщиках, нажмите кнопку Добавить и подтвердите, что у вас есть согласие пользователей на их приглашение:
Только после успешной проверки бета-версии приложения вы сможете отправлять приглашения внешним тестировщикам. На этом этапе текст в столбце Внешнее на странице сборки изменится на Отправить приглашения. Нажмите на эту ссылку, чтобы отправить приглашения всем тестировщикам, которых вы добавили.
Если приложение было отклонено, необходимо исправить проблемы, перечисленные Центре решения проблем, и отправить полностью обновленный двоичный файл на повторную проверку.
Действия тестировщика
После приглашения тестировщиков они получат приглашения по электронной почте, пример приглашения представлен на рисунке ниже:
После нажатия кнопки Открыть в TestFlight приложение будет открыто в TestFlight. Если TestFlight еще не установлен, то произойдет перенаправление в App Store для скачивания этого приложения.
После открытия вашего приложения в TestFlight на экране появятся подробные сведения о том, что именно необходимо протестировать, и будет предложено установить приложение на устройство тестировщика с iOS 8.0 (или более поздней версией):
Оранжевая точка перед именем приложения на начальном экране устройства будет указывать на то, что это тестовая сборка.
Тестировщики могут оставлять отзывы через приложение TestFlight, и вы будете получать их на электронную почту, адрес которой указан в метаданных.
Завершение бета-тестирования
После завершения бета-тестирования можно отправить приложение на проверку компанией Apple для публикации его в магазине App Store. Этот процесс выполняется очень просто: в iTunes Connect щелкните на кнопку Отправить на проверку, как показано ниже:
Сводка
В этой статье рассмотрен процесс использования службы бета-тестирования Apple TestFlight через iTunes Connect. Статья описывает процесс отправки новой сборки в iTunes Connect и процесс приглашения внутренних и внешних тестировщиков бета-версий для тестирования вашего приложения.