Хабрахабр

[Из песочницы] Распространение приложения под iOS внутри компании (Enterprise Distribute iOS App in-house)

Подготовка и распространение приложения IOS внутри компании весьма непростая задача, особенно когда приложение написано на Windows с использованием Visual studio, а большинство туториалов в интернете описывают исключительно MacOS с использованием Xcode. Однако после часов сражения с детищем Apple, нам удалось свершить казалось бы невозможное, а именно: скрестить жирафа с носорогом собрать IOS приложение на Xamarin в архив Xcode, сразу на MacOS, после получить нужные файлы для распространения, и в завершении создать ссылку, по которой будет распространяться приложение.

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

Предварительные условия:

Должен быть Enterprise аккаунт Apple — $299 в год. 1.

1 Шаг. Создание сертификата.

1. Сперва, на Mac, нужно создать запрос для создания сертификата. Для этого нужно открыть keychain access, например, через поиск:

Выбрать keychain access в левом верхнем углу экрана, в выпавшем меню выбрать “certificate assistant” --> “request a certificate from a certificate authority”, откроется соответствующие окно: 2.

В появившемся окне заполняем поля “User Email Address” – свою электронную почту, и “Common Name” – имя ключа. 3. И нажимаем кнопку “Continue”: А также выбираем пункт “Saved to disk”, чтобы сохранить файл запроса на компьютер.

Далее появится окошко, в котором нужно указать название файла запроса и выбор пути для сохранения файла. 4. Вносим нужные изменения и сохраняем:

После успешного сохранения появится следующее окно. 5. Нажимаем “Done”:

После мы можем увидеть, что создался файл запроса в месте сохранения (в данном примере на рабочем столе). 6. Или мы можем увидеть созданный ключ в списке ключей в “keychain access”:

Далее нам надо создать сертификат, это мы сможем сделать на сайте Apple для разработчиков, войдя в свой аккаунт: 7.

После успешного входа в аккаунт мы переходим в “Certificates, IDs & Profiles”, так же на странице сертификатов нужно убедиться, что выбрано “IOS, tvOS, watchOS”: 8.

Далее на странице, в разделе “Certificates”, нужно выбрать “Production”: 9.

На странице нажимаем на кнопку с изображением “+”, чтобы создать сертификат. 10. Появится страничка, на которой надо выбрать тип создаваемого сертификата:

В данном примере нас интересует метод дистрибьюции In-House, поэтому типом сертификата нужно выбрать “In-House and Ad Hoc”. 11. После нажать кнопку “Continue”:

После мы перейдём к следующей странице создания сертификата на которой будет описано как создать запрос на MacOS для сертификата. 12. Нажимаем кнопку “Continue”: Мы уже создали этот запрос в предыдущих пунктах.

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

После произойдёт генерация сертификата, и на следующей странице его можно будет скачать на компьютер: 14.

Скачиваем сертификат, в данном примере на рабочий стол. 15. Так же мы можем увидеть созданный сертификат на сайте:

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

2 Шаг. Создание Apps ID.

На предыдущем шаге мы успешно создали сертификат, теперь нам нужно создать Apps ID. Для этого нужно:

На сайте Apple для разработчиков, в своём аккаунте перейти сперва в “Certificates, IDs & Profiles”, так же на странице сертификатов нужно убедиться, что выбрано “IOS, tvOS, watchOS”: 1.

Далее на странице, в разделе “Identifiers”, нужно выбрать “App IDs”: 2.

На странице нажимаем на кнопку с изображением “+”, чтобы создать App ID. 3. Настройки ID индивидуальны для вашего приложения, единственное важное уточнение – в графе App ID Suffix нужно выбрать Explicit App ID: Появится страничка, на которой надо выбрать настройки создаваемого ID.

После создания App ID, его можно увидеть на сайте: 4.

Далее нам надо при помощи созданного сертификата создать Provisioning Profiles. По итогу двух шагов, мы успешно получили сертификат и создали App ID. Создание Provisioning Profiles”. И это приводит нас к следующему шагу “3 Шаг.

3 Шаг. Создание Provisioning Profiles.

На предыдущем шаге мы успешно создали сертификат, теперь нам нужно с его помощью создать Provisioning Profiles. Для этого нужно:

На сайте Apple для разработчиков, в своём аккаунте перейти сперва в “Certificates, IDs & Profiles”, так же на странице сертификатов нужно убедиться, что выбрано “IOS, tvOS, watchOS”: 1.

Далее на странице, в разделе “Provisioning Profiles”, нужно выбрать “ Distribution”: 2.

На странице нажимаем на кнопку с изображением “+”, чтобы создать Provisioning Profiles. 3. Появится страничка, на которой надо выбрать тип создаваемого профайла:

В данном примере нас интересует In-House метод дестрибьюции, соответственно выбираем тип профайла “In House” и нажимаем на кнопку “Continue”: 4.

На следующей странице нужно выбрать ранее созданный, на шаге 2, App ID: 5.

После нажатия кнопки “Continue” мы перейдём к выбору сертификата, мы создали его на 1 шаге. 6. Далее нажимаем на кнопку “Continue”:

На следующей странице нам надо заполнить поле с именем профайла и проверить данные перед генерацией профайла: 7.

После профайл будет сгенерирован и его можно будет скачать: 8.

Скачиваем Provisioning Profile, в данном примере на рабочий стол. 9. Так же мы можем увидеть созданный сертификат на сайте, и увидеть, что он активен:

По итогу 3 шагов мы успешно создали Provisioning Profile.

4 Шаг. Создание Xcode архивов (.xcarchive) на базе своего приложения в Visual Studio на Windows и последующего создания .ipa и .plist файлов

Предыдущие шаги выполнялись на компьютере от Apple (Mac), далее я расскажу как создавать .xcarchive в Visual Studio 2017 для Windows, сразу на Mac.

Для этого нам потребуется приложение Xamarin в Visual Studio, которое будет подключено к Mac: 1.

В решение нужно выбрать проект IOS, нажав на него правой кнопкой мыши. 2. В открывшемся окне выбрать пункт “ios bundle setting”. В появившемся меню выбрать “Properties”. Далее выбрать в “bundle setting” – “manual provisioning”, а ниже в графе “manual provisioning” выбрать свой сертификат и профайл который мы создали на предыдущих этапах:

В проекте IOS нужно выбрать файл Info.plist и убедится что “bundle identifier” совпадает с нужным App ID: 3.

После откройте командную строку разработчика в Visual Studio (от имени администратора) “Developer Command Prompt for VS 2017” и либо перейдите в директорию с ios проектом, либо укажите полный адрес при создании команды. 4. Сам по себе архив не содержит нужных нам для распространения .ipa и .plist файла поэтому после генерации архива нам потребуется создать их. Данная команда создаст архив .xcarchive на Mac из Visual Studio. Подробнее о том как создавать архив можно узнать здесь.

211. Команда: msbuild /p:Configuration=Release /p:ServerAddress=10. 2 /p:ServerUser=xamUser /p:Platform=iPhone /p:ArchiveOnBuild=true /t:"Build" MyProject.csproj 55.

После успешного выполнения команды на Mac должен был создастся архив. 5. Там в разделе “Archive” мы увидим созданный архив .xcarchive: Нам надо запустить Xcode, в нём выбрать “Windows” и в этом меню выбрать “Organazer”.

Теперь нам надо создать файлы .ipa и .plist, на основе созданного архива. 6.

Далее нам надо нажать кнопку “Distribute App”. При помощи их мы сможем распространять своё приложение минуя AppStore, например, внутри компании. В появившемся меню выбрать “Enterprise” и нажать кнопку “Next”:

Далее нужно выбрать устройства, на которые можно распространять и обязательно выбрать “include manifest for over-the-air installation”, для того чтобы можно было скачать приложение из браузера: 7.

В следующем окне нужно указать “Name” – имя приложения; “App URL” – путь к .ipa файлу;”Display Image URL” – Путь к иконке 57х57;”Full Size Image URL” – Путь к иконке 512х512. 8.

В примере используется сервис dropbox. Важно что бы сервер на котором размещены файлы .ipa и .plist, был с шифрованием, то есть обязательно https. При использовании сервиса dropbox важно знать: правильный путь к файлу по публичной ссылке должен начинаться не с “https://www.dropbox.com/”, как указано в сгенерированной ссылке, а с “https://dl.dropboxusercontent.com/”.

На следующем этапе нам нужно выбрать созданные сертификат и Provisioning Profile: 9.

После мы увидим успешно собранное приложение, и мы должны выбрать куда сохранить папку с приложением, которое мы после будем распространять: 10.

После сохранения на рабочем столе создалась папка. 11. Что касается 4 файлов .plist, то далее нам понадобится файл “manifest.plist”. Содержимое папки вы можете видеть на скриншотах ниже, при генерации создаётся 4 файла .plist и обычно 1 .ipa, но в проверочном приложении это немного не так, но нас в данном случае будет интересовать файл у которого в имени только название нашего приложения. Подробнее узнать о Enterprise Distribution и посмотреть как выглядит manifest.plist можно здесь: Для установки приложения нужен plist, в котором описаны предустановочные свойства.

Таким образом на данном шаге мы успешно создали .ipa и .plist файлы приложения, созданного в Visual Studio 2017, и которые мы будем использовать для In-House дестрибьюции.

5 Шаг. Распространение приложения

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

Сперва нам нужно разместить файлы (иконки, .ipa файл и manifest.plist) на dropbox и делаем их доступными по ссылке: 1.

После создаём html файл, следующего содержания: 2.

<html> <body> <a href=”itms-services://?action=download-manifest&url=https://www.yoursite.ru/dirname/ manifest.plist"> Install iOS in-house App</a> </body>
</html>

3. Далее выкладываем этот html файл на локальный IIS (или ваш сайт), и пройдя по данной ссылке с мобильного устройства нам предложат установить приложение. После установки приложения пользователю нужно подтвердить доверие сертификату на устройстве Settings → General → Device Management → «Enterprise Name» тогда только пользователи смогут открыть приложение:

Итог

По итогам 5 шагов мы создали сертификат и Provisioning Profile, собрали Xcode архив из Visual Studio 2017, получили .ipa и .plist файлы для распространения, а так же смогли успешно установить приложение на устройстве перейдя по ссылке, тем самым минуя AppStore.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть