Главная > Apple > Wireless Enterprise/AdHoc Distribution

Wireless Enterprise/AdHoc Distribution

Как же долго не мог я себя мотивировать к обновлению блога после новогдних праздников, полтора месяца прошло…
По роду своей деятельности мне приходиться заниматься доставкой (deployment) adhoc версий на iOS-девайсы заказчиков. Все бы ничего, но порой для человека установить IPA-файл на дейвайс становится адовым адом. Да и мне особого удовольствия не доставляет каждый раз усердно объяснять людям, как установить этот самый IPA-файл на свой iPhone/iPad/iPod. Буквально на днях открыл для себя ошеломляюще простой способ установки adhoc на устройство, используя… штатный Safari-браузер , поставляемый в комплекте iOS. На самом деле, любой другой браузер тоже сгодится. Установка происходит в один клик.  

Для начала, опишу коротко штатный способ установки IPA, если вдруг кто не знает, а кто знает, может сразу переходить к новому способу. И так, чтобы установить adhoc-версию приложения на определеный девайс нужно:
— иметь AdHoc Distribution Profile, содержащий в себе UDID того самого устройства,
— Собрать adhoc-версию приложения, содержащую этот профайл (в xCode, Product -> Archive).
— Передать полученный IPA человеку
— Человек запускает iTunes.app (или iTunes.exe если на Windows) у себя на компьютере, перетаскивает из Finder’a полученный IPA файл в сайдбар тунца прямо в медиатеку. При этом она должна появиться в Программах

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

 

Не самое простое действие даже для подготовленного человека.
Теперь новый способ, так сказать, простая установка IPA adhoc в один клик без подключения устройства к компьютеру и использования iTunes (aka Wireles distribution).
Стоит оговориться, возможность эта существует только для девайсов с iOS 4.0 и выше. Ко всему прочему, возможность эта не документирована должным образом, но кое-что о ней все-таки известно. А еще, она не избавляет нас от добавления в профайл всех UDID устройств, на которых необходимо запускать AdHoc версии.
И так, что для этого нужно? Весь процесс сборки AdHoc происходит как обычно: выбираем платформу iOS device, далее в меню Product -> Archive, получаем архив приложения, находим его в Organizer’e, нажимаем Share, появляется диалог


Выставляем нужный AdHoc Identity, нажимаем Next, в появившемся окне выбираем путь сохранения файлов и отмечаем галку Save for Enterprise Distribution и заполняем поля формы — думаю, объяснения излишни.

Нажимаем Save, получаем два файла: .ipa и .plist. Во втором содержится некий манифест — он служит по большей части для привязки IPA к указанному URL. Все что остается сделать, это html-файл файл страницы загрузки, для примера минимальный html:

<html>
<head>
<title>My Genius Application</title>
</head>
<body>
<a href="itms-services://?action=download-manifest&url=http://heximal.ru/adhoc/genius/MyGeniusApp.plist">Install MyGeniusApp</a>
</body>
</html>

Весь секрет в специальной ссылке (itms-services://). Конечно, ничто не мешает декорировать cтраницу на свой вкус (:
Затем кладем все три файла на сервер, естественно в нужную локацию (в примере в папку http://heximal.ru/adhoc/genius), и вуаля. Открываем в айфоновском Safari нужную страницу, жмем линку, и…

Эпилог. Когда изучал тему, наткнулся на некоторое недовольство программеров относительно функциональности xCode, дескать, неудобно каждый раз вносить мету ручками. Вот к примеру, на одном буржуйском блоге нашел интересное решение. Товарищ написал генератор, который может делать все выше описанное, имея на входе IPA файл и URL. На выходе генерит симпатишный html и все запчасти.

 

Из плюшек — он запоминает для каждого BundleID тот самый URL, который в икскоде нужно каждый раз вставлять. Кроме того, проект open-source.
У меня сразу родилась мысль, что всю эту логику можно воспроизвести прямо не сервере, например, с помощью моего любимого php. Можно даже создать какой-то тракинг на этой основе: делаем страницу аплоада, указываем файл на диске, можем какие-то свои комменты оставить, серверный скрипт делает всю магию, и вот уже на другом конце тестировщик видит, что появился свежий бета-релиз.

Categories: Apple Tags: , , ,
  1. Станислав
    13 October 2013 в 07:42 | #1

    Спасибо — помогло и работает! Я использую для установки на свои устройства, чтобу не подключать кабелем каждый раз.

  2. Artur
    25 April 2014 в 08:08 | #2

    От чистого сердца спасибо!

    Мне тоже закачзик прислал ipa файл и я мозг сломал как его поставить. В итоге джелбрекнул айфон и поставил =)) Это третий способ =)

Подписаться на комментарии по RSS