Будем исходить из того, что вы написали свое первое приложение под Android на Windows, используя, к примеру, редактор Visual Code и теперь хотите на основе уже написанного кода построить приложение под iOS, перекинув все исходник на ваш Mac — машину, где мы будет подготавливать, построить и подписывать приложение под iOS, прибегнув к помощи XCode.
Здесь представлен текст описания одного из вариантов построения приложения Cordova для платформы iOS. Перед началом работы условимся, что у нас в инструментарии есть следующие необходимые условия:
- у нас есть Mac OS High Sierra(или неважно какая версия, но чтобы работала стабильно);
- на нашем Mac OS установлен XCode последней версии(или неважно какой версии, но чтобы работало стабильно);
- на нашем Mac OS установлен Node.js v8 и выше(или неважно какой версии, но чтобы работало стабильно);
- на нашем Node.js установлен Cordova;
- у нас есть годовая подписка на возможность разрабатывать приложения под продукты Apple. Стоит это удовольствие $99, без этого ваш проект так и будет на стадии дебаги��га, без возможности устанавливать на сторонние устройства или загружать на App Store.
Это все элементарные элементы, которые понятны для настройки любому разработчику, принявшегося серьезно разработать под iOS и останавливаться, подробно описывая каждый шаг, я не буду.
Подписка на Apple Developer
Особо следует остановиться на покупку лицензии разработки в виде подписки, потому что без этого никак, если вы хотите подписать приложение и распространять его. У Apple распространители делятся на 4 категории:
- Sign in with Apple ID — распространители, которые имеют возможность использовать разработку только в режиме тестирования. Т.е., вы не можете распространять ваши приложения за пределы эмулятора на вашем Mac или вашего личного устройства, но весь функционал разработки вам все равно доступен. Стоит $0;
- Individual — распространитель в виде индивидуального разработчика. Apple выдает вам сертификат, в котором прописаны ваши личные данные, как физического лица. Стоит $99;
- Organization — распространитель от имени организации. Apple выдает вам сертификат, в котором прописаны вашей организации. Стоит $99;
- Enterprise Program — распространитель корпоративного ПО. Стоит $299.
Подробно про фичи разработки под тем или иной подпиской можно почитать по ссылке.
Настройка проекта Cordova
Добавляем платформу iOS и подготавливаем проект для XCode
cordova platform add ios cordova prepare # или "cordova build"
Развертывание проекта в Cordova
Примечание. Этап развертывания средствами Cordova можно пропустить, так как дальнейщую работу с проектом мы будем производить в XCode.
Дополнительно будет полезно установить вспомогательные утилиты, которые пригодятся в работе c эмуляторами
npm install -g ios-sim npm install -g ios-deploy
В данной статье мы не будем работать через эти утилиты, а будем работать через XCode. Также через командную строку мы можем задеплоить приложение.
Для развертывания приложения на подключенном iOS устройстве:
cordova run ios --device
Для развертывания приложения на iOS эмуляторе по умолчанию:
cordova emulate ios
Можно использовать cordova run android —list чтобы увидеть все доступные цели и cordova run android —target=имя_устройства для запуска приложения на конкретном устройстве или эмуляторе (например, cordova run android --target="Nexus4_emulator"
).
Чтобы увидеть дополнительные параметры построения и запуска также можно использовать cordova run —help.
Работа с проектом в XCode iOS SDK
Первым делом открываем сгенерированный проект XCode в директории проекта Cordova по пути ProjectName/platforms/ios/PrjectName.xcpdeproj
Здесь следует рассмотреть несколько пунктов настройки, чтобы сгенерировать релиз проекта.
Первым делом выбираем модуль Cordova в списке и при его контексте нажимаем на вкладку General, где устанавливаем галочку на автоуправление подпиской и в выпадающем нижнем списке выбираем команду разработки. В данном случае там указываем вашу купленную подписку разработчика у Apple
Первым делом выбираем конечное устройство в виде физического устройства
Далее заходим в настройку схемы проекты и там должен быть выбран название проекта,а не библиотека Cordova
Если он не установлен, то заходим в Edit Scheme и во всех вкладках устанавливаем конфигурацию Build Configuration в режим Release, кроме вкладки Test
Теперь, нам нужно сначала почистить проект нажав на Clean, построить, нажав на Build и архивировать, нажав на Archive
Если мы все правильно настроили в проекте, то проект должен удачно архивировать в формат *.xcarchive по пути проекта ProjectName/platforms/ios/PrjectName.xcarchive
Чтобы увидеть все сгенерированные архивы проектов необходимо найти в верхнем меню Window > Organizer
В данном диалоге мы увидим список всех архивов. Это не полноценное приложение, которое можно уже установить на iOS — устройство и его нельзя разместить в маркет. Для этого нам нужно его экспортировать в один из вариантов и для этого сначала выбираем проект, далее нужный архив из проекта и нажав на кнопку Export вызываем окно выбора типа распространения нашего приложения в формате *.ipa
В способе распространения *.ipa выбираем нужный вариант. Если хотим распространить через App Store, о выбираем первый пункт. Второй пунтк — это распространение подписанного приложения с возможность индивидуальной установки без App Store. Другие можно понять по их кратким описаниям, но основные — это 2 первых, если вы новоиспеченный разработчик iOS.
К примеру выберем тип распространения Ad Hoc и жмем на Next и в следующем диалоге у нас будет возможность выбрать какое-то специфическое устройство или все поддерживающие данной разработкой устройства все сразу, также есть возможность добавить файл манифеста, который даст возможность установить приложение только из определенной ссылки скачивания и жмем на Next
В данном шаге необходимо выбрать режим подписи. Оставим автоподпись средой XCode и жмем на Next
Дальше среда будет генерировать подписанные дистрибутивы под разные устройства iOS
По окончании процесса среда выдаст подробную информацию о сборке
Жмем на кнопку Export и среда нас запросит выбрать место хранения сгенерированных подписанных дистрибутивов *.ipa
После сохранения создастся отдельная папка, в которой будут все наши подписанные дистрибутивы iOS