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. Можно даже создать какой-то тракинг на этой основе: делаем страницу аплоада, указываем файл на диске, можем какие-то свои комменты оставить, серверный скрипт делает всю магию, и вот уже на другом конце тестировщик видит, что появился свежий бета-релиз.
Спасибо — помогло и работает! Я использую для установки на свои устройства, чтобу не подключать кабелем каждый раз.
От чистого сердца спасибо!
Мне тоже закачзик прислал ipa файл и я мозг сломал как его поставить. В итоге джелбрекнул айфон и поставил =)) Это третий способ =)