Как TestFlight делает это?

197

TestFlight предлагает беспроводную бета-версию приложений iOS (на не взломанных устройствах). Как это может быть сделано? Это функция iOS или уязвимость?

hpique
источник
Отличный вопрос, но я не уверен, что это по теме. Это граница, ИМО. Тем не менее, я хотел бы знать ответ на это тоже, так что +1
Моше
Если это функция iOS, она, несомненно, поможет мне лучше разобраться в подготовке.
hpique
12
@Moshe: Можете ли вы объяснить, почему вы думаете, что это не по теме?
Беси
Таким образом, вопрос связан с инструментом распространения, а не с написанием кода. Тем не менее, я написал свой комментарий почти год назад. Среда на SO была немного другой.
Моше
8
Это очень хороший вопрос.
Гордый участник

Ответы:

87

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

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

Видеть:

Обновление: я хочу сказать, что Test Flight - один из самых полезных инструментов, которые я использовал при разработке. Простое удаление электронной почты IPA из картины было преуменьшением - я просто пытался вызвать технический механизм. Они делают фантастическую работу, управляя всем бета-процессом. Получение новых устройств зарегистрировано. Уведомление пользователей и т. Д.

Ник
источник
6
как они зарабатывают деньги, это бесплатно на домашней странице?
Джонатан.
1
Я предполагаю, что они начнут какое-то премиальное предложение в будущем. Это бесплатно сейчас, и новый SDK действительно впечатляет. Он может собирать журналы сбоев и информацию об использовании непосредственно из ваших тестовых клиентов и даже символизировать их, если вам удобно загружать свои dsyms.
Ник
7
Это довольно впечатляюще, просто я привык к тому, что «если это слишком хорошо, чтобы быть правдой, как обычно» в Интернете :)
Джонатан.
Я подозреваю, что они будут зарабатывать деньги, взимая плату за свои услуги в производстве, и будут держать бета-сервисы бесплатно Они официально не поддерживают использование продукции сегодня, и они продолжают ссылаться на грядущее «решение для производства» на своих форумах поддержки.
Нильс
5
@ Ник, я думаю, что ваш ответ не совсем правильный. You still need to sign the beta distribution for a select set of UDIDs you can't just willy nilly install it on any device, Для корпоративного профиля обеспечения распространения вам не нужно указывать устройства, и вы можете (хотя бы технически) установить двоичный файл на любое устройство. Тем не менее, лицензия ограничивает вас, чтобы установить его только внутри компании, для которой был выпущен профиль распространения.
Беси
91

В этой статье показано, как работает реализация OTA Apples, и ее можно использовать и за пределами предприятия: распространение беспроводных приложений ios

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

Некоторые дополнительные решения с разными преимуществами:

  • iOS Beta Builder , Mac-приложение для создания веб-сайта с использованием сборки. Просто загрузите полученные файлы на ваш веб-сервер.

  • Diawi : простой веб-сервис. Загрузите файл IPA, при желании установите пароль и отправьте ссылку своим тестерам.

  • AppSendr : веб-сервис для хостинга бета-сборки, похожий на Testflight, но не включает процесс регистрации устройства. Но предоставляет утилиты развертывания для автоматической загрузки новых версий.

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

  • HockeyApp : веб-сервис для хостинга бета- сборок, обновлений в приложениях, статистики, включая регистрацию устройств, приглашение и набор персонала. Также предоставляет сбор отчетов о сбоях на стороне сервера, символику (для всех потоков) и группирование сбоев для бета-версий и приложений магазина приложений (iOS + Mac). SDK с открытым исходным кодом, с использованием HockeyKit , QuincyKit и PLCrashReporter (единственное безопасное решение о том, как выполнить сбор отчетов о сбоях на iOS, см. В этой статье .

Примечание: я являюсь основным разработчиком HockeyKit и QuincyKit и одним из разработчиков HockeyApp .

Kerni
источник
5

Testflight в основном использует обычный Ad Hoc, как уже говорилось.

Чтобы это работало, вам нужно UDIDдля каждого устройства, чтобы добавить его в профиль Ad Hoc, перекомпилировать приложение с новым профилем и распространить новую сборку.

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

Первый шаг задокументирован здесь: настройка Apple OTA

Я полагаю, Testflight использует это сразу после процесса регистрации, чтобы получить имя UDID, телефон, ...

Томас Фанкхаузер
источник
4

Да, это основная функция iOS для корпоративных клиентов, которые хотят распространять OTA.

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

Войдите на developer.apple.com, перейдите на WWDC 2010 Videos и воспользуйтесь ссылкой, чтобы перейти к видео. Требуемое видео - «Сессия 108 - Управление мобильными устройствами». Он очень информативен о том, что возможно с OTA, и о шагах, которые вы должны предпринять для обеспечения OTA.

Робот-кот
источник
0

Стандартные устройства iOS «уязвимы» для запуска пользователем загрузки специальных приложений от любого разработчика, который имеет UDID этого устройства, и регистрирует этот UDID среди своих 100 разрешенных устройств на портале Apple для разработчиков.

OTA-дистрибутив - это всего лишь еще один способ установить бета-тестирование Ad Hoc от зарегистрированного разработчика.

hotpaw2
источник