Разработчик разработок
28,8
рейтинг
10 декабря 2015 в 15:19

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

Многие разработчики гибридных мобильных приложений сталкиваются с проблемой подписи и публикации 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
zplch @zapolnoch
карма
163,0
рейтинг 28,8
Разработчик разработок
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (15)

  • +5
    А не проще ли установить Mac OS X в виртуальную машину (есть образы для VMWare) и оттуда все сделать?
    Проверено — все собирается и заливается без каких либо проблем.
    Может, конечно это и не совсем легально, тут не знаю точно, но зато и бесплатно и удобнее, чем использовать сторонние сервисы, и тем более покупать железку.
    • 0
      Да, такой вариант многие используют. Но лично у меня MacOS на виртуалке работает с такими лагами, что на его фоне macincloud кажется шутером с 60 FPS.
      • +1
        Ну тут да, если основной ПК слабый, но чисто что бы сгенерировать ключи и залить IPA должно хватать. А так и ваш подход имеет право на жизнь.
    • 0
      А легальные варианты использования виртуалок с макосью есть? Пару лет назад официального способа установки на виртуалки вроде как небыло. Вроде чтото было с макос сервер и там можно ВРОДЕ было поднимать официально виртуалки, но покупать ради пары виртуалок дорогой максервер совсем не комильфо. В итоге купили макмини, пока хватает… Не поменялось ли чего в политике эппла?
  • 0
    А хакинтош пробовали?
    • 0
      Нет. Этот вариант мне кажется самым крайним, потому что прямо нарушает лицензию. Зачем рисковать Apple-аккаунтом за 100$/год ради экономии 1$/час? Тем более, чтобы залить ipa в стор достаточно 5 минут.
      • 0
        Вам виднее, но на прошлой работе заливали без проблем.
  • 0
    Для публикации в AppStore можно использовать Fastlane fastlane.tools
  • 0
    Не совсем в тему, но как вы показываете Апп Сторам, что приложение локализовано?
    • 0
      Описание в iTunesConect, поля в plist
      • 0
        Я просто читал кучу магии про Фонгэп и эмуляции наличия файлов локализации.
        • 0
          по идее CFBundleLocalizations в Info.plist достаточно
    • 0
      <gap:config-file platform="ios" parent="CFBundleLocalizations" mode="replace">
      	<array>
      		<string>ru</string>
      	</array>
      </gap:config-file>
      
  • 0
    Буквально на днях планируем публиковаться… К чему больше всего придираются?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.