Публикация HTML5-приложений в AppStore без Mac

Многие разработчики гибридных мобильных приложений сталкиваются с проблемой подписи и публикации iOS-приложений без использования Mac.
С Android все более или менее просто: устанавливаем SDK (под Windows, Mac или Linux), собираем приложение, а публикация apk в Google play осуществляется через веб-интерфейс. С Apple такой номер не проходит: для генерации ключа, подписи приложения и публикации ipa в AppStore нужен Mac. Как решить эту проблему в Windows?

OpenSSL


Вам необходимо скачать и установить OpenSSL под Win. На стадии установки, выберите копирование DLL-файлов в папку /bin, вместо системной директории.

d2ed7fb25f434c249f88e574ff9f7c8b.png

В остальной части этого руководства предполагается что вы скачали »Win32 OpenSSL v1.0.2e» и установили в папку C:\OpenSSL.

Генерация ключей


1. Дальше вам нужно сгенерировать закрытый ключ. Зайдите в командную строку и перейдите в каталог в котором планируете хранить созданные файлы. Затем введите следующую команду для генерации ключа:

C:\OpenSSL\bin\openssl genrsa -out mykey.key 2048


2. Введите следующую команду для создания запроса сертификата (CSR):

C:\OpenSSL\bin\openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=you@mail.ru, CN=Your Name, C=RU"


Не забудьте указать свои электронный адрес и имя, а в поле C= поменять код вашей страны, если это необходимо.

3. Перейдите в аккаунт разработчика на сайте Apple, в раздел «Certificates, Identifiers & Profiles». Нажмите кнопку для добавления сертификата:

6d411f1348b54f739ffae4a15d0595f7.png

4. Выберите какой тип сертификата вам нужен (для публикации в AppStore подходит App Store and Ad Hoc).
5. Сайт выведет информацию о Certificate Signing Request (CSR), смело жмем «Continue».

6. Загрузите файл запроса сертификата (.certSigningRequest) и нажмите «Generate».

32bbd0e9070b40fa818ef97a70e89b0f.png

7. Сертификат ios_distribution.cer готов. Скачайте его в папку, которую создали ранее.

8. В командной строке введите команду для преобразования .cer в .pem:

C:\OpenSSL\bin\openssl x509 -in ios_distribution.cer -inform DER -out ios_distribution.pem -outform PEM


9. После этого, ведите команду генерации P12-ключа:

C:\OpenSSL\bin\openssl pkcs12 -export -inkey mykey.key -in ios_distribution.pem -out iphone_dist.p12


Вам будет предложено ввести пароль и подтвердить его.

Генерация профиля


1. Возвращаемся в аккаунт разработчика Apple, в раздел Identifiers > App IDs и создаем ID приложения.
2. После этого, инициализируйте профиль приложения в разделе «Provisioning Profiles > Distribution». Вам нужно выбрать App ID и сертификат, который будет включен в профиль. Нажмите «Generate» и скачайте .mobileprovision-файл:

45dafbe818da48248f1be5991fbbad02.png

Загрузка в AppStore


Используя provision-файл и P12-ключ вы сможете собрать ipa-файл в облаке PhoneGap Build или Intel XDK.

Осталось загрузить ваш ipa-файл в AppStore. К сожалению, сделать это можно только через Xcode или Application Loader, которые работают только под Mac. Чтобы решить эту проблему, кто-то покупает Mac mini (как самый бюджетный из линейки Mac), кто-то использует специальные сервисы.

Лично я арендую удаленный Mac через интернет (примеро 1$ в час):
macincloud.com
virtualmacosx.com
macminivault.com

© Habrahabr.ru