[FAQ] Создание собственного сервера для установки IPA-файлов
Если вы хотите увидеть на нашем сайте ответы на интересующие вас вопросы обо всём, что связано с техникой Apple, операционной системой Mac OS X (и её запуском на PC), пишите нам через форму обратной связи.
К нам поступил следующий вопрос:
Добрый день!
Мы планируем скоро создать корпоративное приложение, которое будет устанавливаться только на айфоны наших сотрудников. Публиковать его в App Store не хотим. Можно ли создать свой собственный сайт, зайдя на который, скачается и установится программа? Причём нам надо, чтобы программа ставилась не на любые устройства, а лишь на те, на которые её разрешено было ставить.
Здравствуйте!
Тема довольно известная. Приложения для корпоративных пользователей необязательно распространять через App Store, можно организовать то, что называется adhoc distribution. Однако успех затеи зависит от количества сотрудников, на айфоны которых нужно будет ставить вашу будущую программу. Если их больше 100, придётся подписываться на программу iOS Developer Enterprise Program за 299 долларов в год.
Если же устройств, на которые будет ставиться приложение, 100 или меньше, никаких проблем нет, получится обойтись и обычной подпиской iOS Developer Program за 99 долларов в год:
- разработчики компилируют сборку приложения, подписанную вашим корпоративным сертификатом
- администраторы прикрепляют к вашему аккаунту разработчика все устройства, на которые предполагается ставить программу (это делается через UDID — уникальный идентификатор каждого iOS-устройства, который можно посмотреть в iTunes, несколько раз нажав на серийник)
- через Центр разработчиков Apple генерируется профиль настроек, который позволит ставить приложения, подписанные вашим сертификатом, на прикреплённые к вашему аккаунту разработчика гаджеты
- этот профиль выкладывается в корпоративной сети или рассылается по почте владельцам устройств, на которые нужно будет поставить программу. Для установки профиля достаточно будет открыть его прямо в почтовом клиенте
- затем создаётся сервер установки приложений. Это элементарная задача: «серверу» нужна лишь одна HTML-страничка, на которой следует разместить ссылки на URL следующего вида:
itms-services://?action=download-manifest&url=http://yoursite.com/manifest.plist
- ссылка выше ведёт к файлу манифеста приложения. Этот файл создаётся либо автоматически (с вкладки Archives в органайзере Xcode, если вы публикуете программу, выбрав пункт Distribute -> Save for enterprise or ad-hoc deployment), либо вручную. Если придётся создавать его вручную, то шаблон таков:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>http://yourdomain.com/app.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>http://yourdomain.com/icon.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.yourcompany.AppName</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>YourApp</string>
</dict>
</dict>
</array>
</dict>
</plist>
Файл устроен следующим образом:
- в секции software-package указывается URL IPA-файла, который будет скачиваться
- секция display-image необязательна — она отвечает из иконку приложения, отображаемую во время его скачивания на рабочем столе iOS-устройства. Если эта секция отсутствует, в ходе установки будет отображаться пустая белая иконка
- в секции metadata должны быть заполнены все поля: идентификатор приложения, который задаётся в Xcode, версия программы, тип (всегда software) и название приложения
В результате, пользователям надо будет зайти на ваш корпоративный сайт с iOS-гаджета и кликнуть по ссылке установки приложения. Появится окошко, предлагающее установку, после чего IPA-файл скачается и установится на устройство, в обход iTunes и App Store. Однако если на устройстве не установлен правильный профиль, скачанная программа попросту не запустится.