Хабрахабр

[Из песочницы] Распространение приложения под 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.

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

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

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

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

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