Публикация HTML5-приложений в AppStore без Mac
Многие разработчики гибридных мобильных приложений сталкиваются с проблемой подписи и публикации iOS-приложений без использования Mac.
С Android все более или менее просто: устанавливаем SDK (под Windows, Mac или Linux), собираем приложение, а публикация apk в Google play осуществляется через веб-интерфейс. С Apple такой номер не проходит: для генерации ключа, подписи приложения и публикации ipa в AppStore нужен Mac. Как решить эту проблему в Windows?
OpenSSL
Вам необходимо скачать и установить OpenSSL под Win. На стадии установки, выберите копирование DLL-файлов в папку /bin, вместо системной директории.
В остальной части этого руководства предполагается что вы скачали »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». Нажмите кнопку для добавления сертификата:
4. Выберите какой тип сертификата вам нужен (для публикации в AppStore подходит App Store and Ad Hoc).
5. Сайт выведет информацию о Certificate Signing Request (CSR), смело жмем «Continue».
6. Загрузите файл запроса сертификата (.certSigningRequest) и нажмите «Generate».
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-файл:
Загрузка в 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