Тестирование iOS-приложений. Запуск и тестирование своих iOS-приложений на устройстве без аккаунта разработчика и без Jailbreak

В этой статье я хочу рассказать о тестировании iOS приложений и небольшой автоматизации этого процесса.
Под катом будут рассмотрены инструменты для модульного и функционального тестирования и приведены простые примеры.

Тестовое приложение

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

Эти инструменты очень похожи, они оба позволяют писать тесты на Cucumber"е и оба реализованы на Ruby, разница лишь в функционале.
В одном из проектов мне пришлось мигрировать с Frank"а, я просто запустил тесты с использованием Calabash"а и все они прошли почти сразу, пришлось только немного изменить пару шагов.

Сейчас я остановился на Calabash. Думаю что многие iOS разработчики не знакомы с Cucumber, потому и хочу немного рассказать как он работает и как писать тесты.

Cucumber
Я ни в коем случае не претендую на верность этого описания, просто опишу как я понимаю его работу, и надеюсь это описание внесет некоторую ясность и поможет стартануть тем кто все еще не решился его использовать.

Итак, в Cucumber"е есть несколько главных «сущностей»:

Feature - это набор нескольких связанных по логике сценариев (или не связанных, уж как программист решит). Она состоит из названия и краткого, информативного описания. К примеру:

Feature: Manage Orders As a User I should be able to manage Orders through iOS application
Scenario - конкретный сценарий описывающий некоторый use case. Состоит из имени и набора шагов.

Scenario: Create Order #steps
Step - описание конкретного действия пользователя (нажатие на кнопку/ссылку, ввод текста, свайп и.т.п).

When I fill in "Title" with "FuuBar" And I touch "Save" button Then I should see alert view titled "Saved successully"
Step definition - реализация конкретного действия пользователя. Выглядит она примерно так:

When /^I touch "([^"]*)" button$/ do |button_text| touch("button marked:#{button_text}") end

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

Давайте добавим Calabash в наш проект.
Перейдите в деректорию с проектом и выполните следующие команды:

Gem install calabash-cucumber calabash-ios setup calabash-ios gen
Calabash добавил к нашему проекту еще один таргет, по умолчанию он имеет шаблон project_name-cal. Нам необходимо выполнить build для этой цели.
Теперь мы почти готовы запустить тесты.
После генерации выводится подсказка как запустить тесты

DEVICE=iphone OS=ios5 cucumber

Но на выполнении этой команды все валится, т.к. calabash не знает где находится наше приложение. Для этого необходимо указать еще одну переменную - APP_BUNDLE_PATH. По умолчанию Xcode 4.x хранит приложения по адресу

~/Library/Application\ Support/iPhone\ Simulator/x.x/Applications/hash/app_name.app

Где x.x - версия iOS, а hash - сгенерированный Xcode"ом уникальный ключ для приложения.
Попробуйте найти свой.app и выполнить следующее

APP_BUNDLE_PATH="~/Library/Application\ Support/iPhone\ Simulator/x.x/Applications/hash/your_app-cal.app" DEVICE=iphone OS=ios5 cucumber
Теперь все должно пройти хорошо.

Guard
Такой способ не очень удобен, но он вполне оправдан, т.к. calabash не может знать где лежит наше приложение. И тут нам на помощь приходит Guard.
Guard - это гем, который следит за файловой системой и при изменении файлов, за которыми он следит выполняет какие-либо операции. Список guard"ов довольно обширный, но нам нужен guard-calabash-ios .

Для его установки и использования необходимо выполнить следующее:

Gem install guard-calabash-ios guard init calabash-ios
Это создаст Guardfile - файл в котором описаны свойства необходимые guard"у и файлы за которыми нужно следить. (Детальные настройки можно найти на гитхабе . )
Последний штрих - откройте настройки Xcode и установите Derived Data как Relative. Теперь Xcode будет хранить сборки в директории с проектом, что позволит скрипту из guard-calabash-ios найти нужный нам APP_BUNDLE_PATH автоматически.
Теперь для прогона тестов необходимо выполнить в папке с проектом следующее.

Пишем тесты
Теперь когда все работает более удобно мы можем приступить к написанию наших UI-тестов.

Calabash создал папку features, в которой находятся наши сценарии и реализация шагов.
Давайте удостоверимся что наш калькулятор позволит пользователю сложить или вычесть два числа, и показать верный результат в alert view.

Отредактируйте файл my_first.feature

Feature: Add numbers As a User I should be able to perform calculations Scenario: Add numbers When I fill in "left" with "15" And I fill in "right" with "10" And I touch "add" Then I should see "25"
Если у вас все еще запущен guard, то при сохранении файла он автоматически запустит тесты, причем будет тестировать только измененный файл. Это очень удобно если у вас есть несколько файлов с фичами, т.к. не приходится после каждой строчки ждать пока прогонятся все тесты.

Итак, все тесты провалились, что логично.

Давайте добавим UI.

Для доступа к контролам из calabash"а нужно задать им accessibility label. Кроме того к кнопкам можно обращаться по надписи на них, а к текстовым полям по плэйсхолдеру.

Я сделал примитивный интерфейс: два текстовых поля и две кнопки в navigation bar"е, "+" и "-".
После того как мы добавили контролы на наш экран нам нужно выполнить следующие действия:

1. Добавить outlet"ы для кнопок и текстовых полей
2. Задать плэйсхолдеры нашим текстовым полям «left» и «right»
3. Задать accessibility label"ы для кнопок

Self.addButton.accessibilityLabel = @"add"; self.subtractButton.accessibilityLabel = @"subtract";
4. Повесить обработчики на наши кнопки

- (IBAction)addButtonTapped:(id)sender { CalculationManager *calculationManager = ; NSInteger left = ; NSInteger right = ; ]; } - (IBAction)subtractButtonTapped:(id)sender { CalculationManager *calculationManager = ; NSInteger left = ; NSInteger right = ; ]; }

5. Добавить метод для отображения результата

- (void)showResult:(NSInteger)result { NSString *resultString = ; [[[ initWithTitle:@"Result" message:resultString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease] show]; }

6. Перейдите в терминал с запущенным guard"ом и нажмите Enter, это запустит все ваши сценарии, у нас он один и если вы все сделали правильно, то тесты пройдут успешно.

Теперь напишем тест для вычитания.

Scenario: Subtract numbers When I subtract 15 from 38 Then I should see "23" as result
После запуска Cucumber сообщит что не знает таких шагов, и предложит их реализовать.
Скопируем и немного подредактируем то что он вывел в файл calabash_steps.rb (project_dir/features/steps_definitions/)

When /^I subtract (\d+) from (\d+)$/ do |subtrahend, minuend| step %{I fill in "left" with "#{minuend.to_s}"} step %{I fill in "right" with "#{subtrahend.to_s}"} step %{I touch "subtract"} end Then /^I should see "(.*?)" as result$/ do |result| res = query("view:"UIAlertView"", "message").first res.should == result end

В реальной жизни мы скорее всего использовали бы теже методы что и в первом сценарии, но здесь я хотел показать как выглядят step definitions, как вызывать другие шаги из реализации шагов(step %{}), как добраться до какого-либо значения (query) и как писать assert (should).

На этом по тестам все.

Заключение

Описанные тесты и приложение выглядят совершенно нелепо, но я ставил своей целью описать на этом примере основные возможности, которые позволят сразу начать использовать TDD/BDD, надеюсь что это у меня вышло и для статья окажется полезной.

В качестве логического завершения еще раз приведу ссылки.

– первая мобильная операционная система, для которой Apple стала выпускать публичные бета-версии. Теперь любой желающий может лично ознакомиться со всеми новыми функциями прошивки и оказать помощь Apple в ее тестировании.

Вконтакте

Тестирование бета-версии предполагает ее загрузку и установку на iPhone или iPad. Этот процесс нельзя назвать сложным, однако он немного непривычен. Пользователям, желающим лично опробовать новую тестируемую версию iOS beta, мы расскажем, как это сделать.

1 . Откройте браузер Safari на iPhone или iPad и нажмите эту ссылку (зеркало) , чтобы загрузить профиль зарегистрированного разработчика.

2. В появишемся всплывающем окне выберите Разрешить .

3. Нажмите iPhone и подтвердите установку профиля для разработчиков на свой iPhone или iPad.

4 . Перезагрузите iOS-устройство.

5. После перезагрузки откройте Настройки и перейдите по пути Основные Обновление ПО . iOS 12 станет доступна для загрузки и установки. На устройстве должно быть не менее 2 ГБ свободного места.

6 . Нажмите кнопку «Загрузить и установить » и дождитесь установки iOS 12 на iPhone или iPad.

Как зарегистрировать учетную запись участника Программы публичного бета-тестирования iOS 12 (начнет действовать в июле 2018 года)

Участникам программы бета-тестирования macOS повторно регистрироваться для загрузки iOS 12 бета не нужно – можно воспользоваться тем же . Пользователи, ранее не участвовавшие в программе, должны зарегистрироваться с помощью Apple ID. Для этого необходимо:

2 . Нажать на кнопку iOS;

3 . Нажать на кнопку «Загрузить профиль» ;

4 . В появившемся всплывающем окне нажать на кнопку «Разрешить» ;

5 . Выбрать iPhone (запрос появится в случае, если Ваш iPhone находится в паре с Apple Watch)

6 . Нажать «Установить» .

7

8 . Нажать на кнопку «Установить », подтверждая условия пользования.

9 . Нажать Перезагрузить для перезагрузки устройства.

Как установить публичную бета-версию iOS 12

После загрузки ОС появится уведомление о готовности к установке. Для инсталляции необходимо:

1 . Открыть приложение «Настройки », выбрать «Основные », а затем нажать на пункт «Обновление ПО »;

2 . Выбрать «Установить »;

3 . Ввести пароль экрана блокировки;

4 . Подтвердить согласие с условиями пользования, нажав «Принять ».

Устройство перезагрузится, после чего будет установлена последняя актуальная бета-версия iOS.

Как откатиться на официальную ОС, если работа тестовой версии iOS вас не устраивает

В случае, если по каким-либо причинам бета-версия iOS вам не понравится, можно откатиться до официальной iOS .

А если нужно проверить весь смартфон? А если не iPhone, а Android? Есть вариант!

Приложение TestM поможет проверить все компоненты смартфона и выявить большинство распространенных неисправностей. Причем, специальных знаний не потребуется. Справится даже ребенок.

Зачем проводить диагностику смартфона?

TestM - новое, и очень перспективное приложение для проверки смартфонов на iOS (App Store) или Android (Google Play).
Такое приложение должно было появиться уже давно. Мелкие неисправности и развивающийся вторичный рынок смартфонов требовал быстрого и доступного для широких масс средства диагностики. Именно им и стал TestM.

С помощью TestM ты можешь:

  • проверить работоспособность компонентов своего смартфона и увидеть, что нужно исправить;
  • при покупке iPhone с рук попросить продавца полный отчет TestM, чтобы увидеть состояние телефона перед покупкой;
  • сделать полный отчет перед продажей своего iPhone, чтобы покупатель мог видеть состояние телефона.

Обычно для этой работы аппарат отправляется в сервисный центр. Сто раз так делал, когда вдруг начинал хуже слышать собеседника, связь становилась нестабильной, переставал работать GPS или какие-то датчики.


А сервис - вечная лотерея: редкий мастер упустит возможности заработать. Смартфон попадет в ремонт, даже если неисправность отсутствует. Хотя, поверьте - это не худшее, что может произойти. А TestM поможет сохранить время, деньги и нервы.

Как TestM заменяет сервисный центр

На первый взгляд может показаться, что приложений для проверок и тестирования смартфонов сотни. Чаще они обращаются к компонентам смартфона напрямую, используя информацию с них без обработки. Есть сигнал с микрофона? Отлично, работает. Датчики отправляют данные? Работоспособны, все хорошо.


В лучшем случае Antutu или Geekbench помогут выяснить, не перегревается ли смартфон, нет ли битых пикселей на экране. Еще покажут общую конфигурацию и производительность в попугаях. В лучшем случае (при наличии рут-прав) покажут прямой набор данных с датчиков, без обработки. В которых разберется только профессиональный сервисный работник.

TestM проводит полноценное тестирование компонентов смартфона. Причем, не требуя инструменты, дополнительное оборудование или рут. Не нужно даже разбираться в современной технике. Проверке с TestM поддается любой современный смартфон под управлением iOS или Android.


Общая работоспособность устройства и быстродействие системы оценивается уже при первом запуске. В дополнение к ним, TestM предлагает на выбор 2 набора тестов: быстрый и полный. Быстрая проверка определяет качество работы основных компонентов:

  • экрана,
  • разговорного динамика,
  • датчика приближения и акселерометра,
  • камеры,
  • микрофона.


Полный набор тестовых упражнений для смартфона в TestM умеет намного больше. Можно проверить все типы датчиков, сетевые интерфейсы (включая GPS), работу аппаратных клавиш и вибромотора, компонентов камеры и работу зарядного устройства.


Я рекомендую делать именно полный - больше проверок, выше надежность.

Знания не нужны - TestM расскажет, что сделать

Другое дело, как TestM проверяет работоспособность смартфона и его компонентов. Если обычные тестовые утилиты проверяют программные ответы оборудования на тестовый запрос, набор проверок TestM проверяют реальную работу компонентов смартфона. Смотришь на экран и выполняешь инструкции.


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


Следующий тест просит прослушать цифры, проигрываемые через основной динамик, и ввести из в специальную форму. Наконец, третья часть теста запускает воспроизведение монофонических частот, которое одновременно записывается микрофоном тестируемого устройства.


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


Даже фотографии - и те анализируются TestM с помощью специальных алгоритмов: нет ли излишних шумов, нет ли в изображении битых пикселей?


Отдельный, и очень большой плюс этого приложения - проверки тачскрина и работы 3D Touch. Без этой утилиты проверить их работу задача непростая, ох непростая.

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


Отчет понятен и прост: вот с этими компонентами смартфона все в порядке, другие требуют внимательного изучения, а третьи показывают некачественную работу.

После прохождения тестирования, утилита подскажет адреса ближайших сервисных центров и покажет их расположение на карте.

Чего не хватает TestM

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


Небольшую смекалку все же применить придется. TestM не использует вспышку и датчик освещенности в проверке камеры, поэтому ее необходимо проверять при хорошем освещении. Вспышка и датчики - отдельные проверки, разделение необходимо для точности.


Аналогичная ситуация может возникнуть при тестировании интерфейсов: стоит проверить, включены ли они. И правильно слушать подсказки, иначе ничего не получится!

Еще одно замечание: «объем» аккумулятора в TestM оценивается приблизительно. Для точной проверки нужно и несколько циклов зарядки-разрядки.

Вместо выводов. Приложение, которое нужно всем

Шон Телл (Shone Tell), соучредитель TestM, считает, что эта утилита поможет упростит продажу и обмен на вторичном рынке смартфонов:

«Платформы для продажи с рук, такие как eBay, часто позволяют продавцам умалчивать недостатки своих смартфонов и продавать их дороже рыночной цены. TestM отличное средство проверки и отчетности для покупателей и продавцов.».

Всем привет. Раньше выход бета-версий iOS считался чуть ли не праздником для всех гиков. Каждая следующая обсуждалась, мусолилась в СМИ. Люди находили мельчайшие изменения как в функционале, так и в дизайне. Поставить её могли лишь избранные. Затем появилась возможность ставить публичные бета-версии официально у всех пользователей. Это с энтузиазмом восприняли многие пользователи.

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

Ну ладно iOS - поставил на зарядку да обновил, но когда OS X начинает обновляться каждую неделю?! А это - лишняя перезагрузка ноутбука, надоедливые каждодневные оповещения о необходимости обновления…

Как выйти из программы бета-тестирования OS X?

Заходим в приложение «Системные настройки». Там выбираем App Store.

Напротив надписи «Ваш компьютер настроен на получение обновлений бета-версий ПО» жмите кнопку Изменить.

В новом окне нажмите «Не показывать обновления бета-версий ПО».

Всё. Теперь в Mac App Store вы будете получать только официальные релизы.

Как выйти из программы бета-тестирования iOS?

С iOS всё сложнее. Apple в своей официальной справке предлагает в режиме восстановления накатить резервную копию, которая была сделана до вступления в программу бета-тестирования.

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

Поэтому единственный адекватный способ - полностью покинуть программу бета-тестирования.

Логиньтесь с вашим Apple ID и паролем.

TestFlight существует уже много лет, как для решения повседневных проблем, так и для распространения iOS приложений для бета тестирования. Ранее в этом году, Apple выкупила Burstly , компанию, которая основала TestFlight. В течение этого года на WWDC, Apple показала нам, что значит это приобретение для iOS программистов. Будьте уверены, это хорошие новости.

TestFlight был интегрирован в iTunes Connect и сейчас доступен как «родное» приложения для девайсов с iOS 8. Если Вы планируете пользоваться платформой для бета распространения от Apple, тогда Вы быстро заметите некоторые произошедшие изменения. В этой статье, Вы изучите насколько легко начать использовать TestFlight.

1. TestFlight

Приобретение Apple TestFlight это не просто интеграция TestFlight в рабочий процесс разработки для iOS. Ряд ключевых аспектов для бета распространения изменились к лучшему.

Идентификаторы устройств и Provisioning Profiles

Для примера, нет больше необходимости изобретать велосипед с идентификаторами устройств и provisioning profiles. Для тестирования приложения с помощью TestFlight больше нет необходимости добавлять устройство в Ваш аккаунт разработчика и больше нет необходимости для генерирования provisioning profile для ad hoc распространения.

Внутренние тестировщики

Apple провела черту между внутренними тестировщиками и бета тестировщиками. Внутренние тестировщики являются членами Вашей команды разработчиков, у которых есть общий аккаунт в iTunes Connect. Внутренние тестировщики настраиваются в iTunes Connect, и Вы можете подключить до 25 людьми для одного приложения. Для того чтобы сделать текущую версию приложения доступной для внутренних тестировщиков достаточно просто переключить переключатель в iTunes Beta Testers

Бета тестировщики

Бета или внешние тестировщики может быть любой, кто имеет электронный адрес, на который iTunes Connect может выслать приглашение. Вы можете подключить до 1,000 бета тестировщиков на одно приложение. Подождите, дальше еще интереснее. Каждый бета тестировщик может иметь несколько устройств для тестирования, что является фантастической новостью для больших компаний, которые испытывают неприятности с лимитом в 100 устройств для одного аккаунта.

Бета рецензия приложения

Хотя есть и один подводный камень. Каждая версия приложения, которую вы загружаете для распространения бета тестровщикам, должна пройти через рецензию от Apple.К счастью это не является справедливым для внутренних татуировщиков. В тот момент, когда вы загружаете новую версию приложения в iTunes Connect, она моментально становиться доступной для каждого внутреннего тестировщика.

Аккаунт в песочнице

В момент, когда тестировщик открывает Ваше приложение, то моментально для него создается аккаунт в песочнице. Это означает, что больше нет необходимости в создании тестовых акаунтов в iTunes Connect. Тестирование In-App Purchases никогда не было настолько простым.

TestFlight для iOS

Apple также выпустила TestFlight как приложение для iOS, в котором тестировщики могут загружать, устанавливать и обновлять тестовые версии приложений. Это очень удобно для управления тестовыми версиями и для поддержания обратной связи с разработчиками приложения.

2. Первые шаги

Шаг 1: Настройки проекта

Давайте для начала создадим пробное приложение в Xcode 6. Откройте Xcode 6, создайте новый проект, основанный на шаблоне Single View Application в секции iOS > Application .

Присвойте Вашему приложению имя и идентификатор организации и нажмите Next . Укажите Xcode, где бы вы хотели сохранить Ваш проект и нажмите кнопку Create .

Шаг 2: ID приложения

Когда Вы нажали Submit , Xcode начинает загрузку тестовой версии приложения в iTunes Connect. Во время этого процесса происходит большое количество валидаций, таких как проверка на то, что в тестовой версии приложения есть все необходимые размеры иконок.

Если Ваша тестовая версия приложения прошла все проверки, Xcode сообщит Вам о том, что тестовая версия приложения успешно загружена в iTunes Connect.

4. Build Details

Вернитесь назад в iTunes Connect и нажмите на вкладку Builds в секции Prerelease . Ваша версия приложения сейчас должна быть доступной. Нажмите на нее, чтобы увидеть данные по Вашему приложению. Если Вы нажмете вкладку Build Details , то вы увидите техническое резюме выбранной версии.

Нажмите на вкладку TestFlight чтобы увидеть данные текущей версии. На этой странице Вы можете добавить информацию для Ваших тестировщиков и команды из Apple"s review team.

В первой секции показывается, когда время для данной версии тестового приложения закончится. Каждая тестовая версия приложения активна на протяжении 30 дней.

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

Третья секция показывает информацию для Apple"s review team. Каждая версия Вашего тестового приложения для внешнего тестирования должна проходить через Apple"s review.

5. Добавление тестировщиков

Для того чтобы включить TestFlight для вашего приложения, переключите переключатель TestFlight Beta Testing расположенный справа.

В то время как писалась данная статься, TestFlight был доступен только для внутреннего тестирования. Apple анонсировала что откроет TestFlight для внешних тестировщиков в ближайшую неделю или месяц. Если Вы нажмете вкладку Internal Testers , Вы увидите пустой список. Для того чтобы добавить тестировщика в данный список, Вы должны пометить члена команды как внутренний тестировщик. Давайте начнем с себя.

В iTunes Connect, перейдите в Users and Roles и выберите Ваш профиль. Чтобы отметить себя как внутренний тестировщик, переключите переключатель Internal Tester справа. Нажмите Save и перейдите назад к списку внутренних тестировщиков Вашего приложения.

Как Вы можете видеть, внутренние тестировщики должны быть приглашены как тестировщики отдельно для этого приложения. Выберете тестировщиков из списка, которых Вы хотите пригласить и нажмите Save . Тестировщики, которых Вы выбрали, должны получить письмо на их электронный адрес, в котором будет приглашение для тестирования приложения.

6. TestFlight для iOS

Загрузите приложение TestFlight от компании Apple с App Store на устройство, в котором установлена iOS 8. Проверьте Вашу электронную почту и откройте письмо-приглашение для TestFlight. Оно должно быть похожим как на рисунке ниже.

Нажав на кнопку Open in TestFlight , вы принимаете приглашение. После этого откроется приложение TestFlight и предоставит Вам возможность скачать и установить тестовую версию приложения, которую мы загрузили в iTunes Connect. Нажмите Install для того чтобы установить приложение на Ваше устройство.

Приложение TestFlight показывает Вам весь список приложений, в которых Вы приглашены как тестировщик, что очень похоже на то, как работает веб версия TestFlight. Главная разница в том, что Apple"s TestFlight client является «родным» приложением, которое позволяет скачивать, обновлять и открывать приложения из приложения TestFlight.

Вы также будете оповещены о том, что данная версия приложения является тестовой с помощью оранжевой точки перед именем приложения на Вашем «домашнем» экране.

В заключении

Приобретение TestFlight компанией Apple это определенно шаг навстречу разработчикам под iOS. То, что я Вам показал в этой статье, является только первым шагом в направлении на интеграцию TestFlight в рабочий процесс разработки под iOS. Я уверен в том, что много новых возможностей откроется в ближайший месяц.