Многие разработчики гибридных мобильных приложений сталкиваются с проблемой подписи и публикации iOS-приложений без использования Mac.
С Android все более или менее просто: устанавливаем SDK (под Windows, Mac или Linux), собираем приложение, а публикация apk в Google play осуществляется через веб-интерфейс. С Apple такой номер не проходит: для генерации ключа, подписи приложения и публикации ipa в AppStore нужен Mac. Как решить эту проблему в Windows?
Вам необходимо скачать и установить OpenSSL под Win. На стадии установки, выберите копирование DLL-файлов в папку /bin, вместо системной директории.
В остальной части этого руководства предполагается что вы скачали "Win32 OpenSSL v1.0.2e" и установили в папку C:\OpenSSL.
1. Дальше вам нужно сгенерировать закрытый ключ. Зайдите в командную строку и перейдите в каталог в котором планируете хранить созданные файлы. Затем введите следующую команду для генерации ключа:
2. Введите следующую команду для создания запроса сертификата (CSR):
Не забудьте указать свои электронный адрес и имя, а в поле 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:
9. После этого, ведите команду генерации P12-ключа:
Вам будет предложено ввести пароль и подтвердить его.
1. Возвращаемся в аккаунт разработчика Apple, в раздел Identifiers > App IDs и создаем ID приложения.
2. После этого, инициализируйте профиль приложения в разделе «Provisioning Profiles > Distribution». Вам нужно выбрать App ID и сертификат, который будет включен в профиль. Нажмите «Generate» и скачайте .mobileprovision-файл:
Используя provision-файл и P12-ключ вы сможете собрать ipa-файл в облаке PhoneGap Build или Intel XDK.
Осталось загрузить ваш ipa-файл в AppStore. К сожалению, сделать это можно только через Xcode или Application Loader, которые работают только под Mac. Чтобы решить эту проблему, кто-то покупает Mac mini (как самый бюджетный из линейки Mac), кто-то использует специальные сервисы.
Лично я арендую удаленный Mac через интернет (примеро 1$ в час):
macincloud.com
virtualmacosx.com
macminivault.com
С 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
Комментарии (15)
stardust_kid
10.12.2015 20:17А хакинтош пробовали?
zapolnoch
10.12.2015 21:32Нет. Этот вариант мне кажется самым крайним, потому что прямо нарушает лицензию. Зачем рисковать Apple-аккаунтом за 100$/год ради экономии 1$/час? Тем более, чтобы залить ipa в стор достаточно 5 минут.
EnterSandman
14.12.2015 01:00Буквально на днях планируем публиковаться… К чему больше всего придираются?
BOOMik
А не проще ли установить Mac OS X в виртуальную машину (есть образы для VMWare) и оттуда все сделать?
Проверено — все собирается и заливается без каких либо проблем.
Может, конечно это и не совсем легально, тут не знаю точно, но зато и бесплатно и удобнее, чем использовать сторонние сервисы, и тем более покупать железку.
zapolnoch
Да, такой вариант многие используют. Но лично у меня MacOS на виртуалке работает с такими лагами, что на его фоне macincloud кажется шутером с 60 FPS.
BOOMik
Ну тут да, если основной ПК слабый, но чисто что бы сгенерировать ключи и залить IPA должно хватать. А так и ваш подход имеет право на жизнь.
thunderspb
А легальные варианты использования виртуалок с макосью есть? Пару лет назад официального способа установки на виртуалки вроде как небыло. Вроде чтото было с макос сервер и там можно ВРОДЕ было поднимать официально виртуалки, но покупать ради пары виртуалок дорогой максервер совсем не комильфо. В итоге купили макмини, пока хватает… Не поменялось ли чего в политике эппла?