Разработка code-based UE4 проектов под iOS в Windows

Один из самых часто задаваемых вопросов на официальном форумe Unreal Engine 4, касаемо разработки для iOS, это возможность разработки code-based проектов на Windows, без необходимости покупать и использовать Mac OS X как того требует официальная документация. Решения есть, но они плохо расписаны и могут отнять много времени на пробы и ошибки. О трудностях перевода на русский и говорить не приходится. Так и родился этот туториал, которым я хочу с вами поделиться.
Для начала, не много фактов. UE4 официально позволяет разрабатывать игры под iOS только на Mac OS X и XCode соответственно. Согласитесь, особенно в нашей стране, докупать мощный макинтош сравнимый по производительности с уже имеющимся PC, дело довольно накладное. Да и переучиваться под новую ОС и среду разработки захочет не каждый, а если и решится, то потратит на это приличное количество рабочего времени прежде чем выйдет на прежний уровень эффективности.
Сразу оговорюсь, что полностью обойтись без компьютера (PC или Mac) работающего под управлением OS X не получится, по крайней мере в текущей версии движка. Однако есть довольно оптимальное и компромиссное решение проблемы. Уже сейчас, все пользователи последних версий движка (4.2.x и выше) имеющие доступ к его исходникам на GitHub (или, например, скачавшие их со всеми известного торрент-трекера), обладают недокументированной возможностью настроить компьютер под управлением Mac OS X в качестве сервера сборки и компиляции проектов, а саму разработку проекта и его тестирование на устройствах вести исключительно из-под Windows. Придется разве что периодически заглядывать в Mac и проверять, работает он еще или вы его с концами заморили постоянной компиляцией кода.
Что же для этого нужно?
Как уже было сказано, понадобится компьютер работающий под управлением Mac OS X (10.8 и выше). Вы можете купить подержанный Mac или Mac Book или запустить OS X на виртуальной машине. Как и на чем будет работать ваш OS X – решать вам. В качестве примера, мы в данный момент используем Mac Mini (Late 2009), купленный с рук по дешевке. Со своими задачами он справляется, но в будущем обязательно поставим машинку по быстрее (самое важное это процессор и дисковая система). Имеет смысл поискать компьютер на ebay (если конечно у вас есть время подождать с доставкой 2-3 недели; у нас не было).
Итак, положим, что у нас есть все что нужно, а именно: рабочий PC под управлением Windows (7 SP1 и выше), а также компьютер под управлением OS X (10.8 и выше). Компьютеры должны быть соединены в обычную локальную сеть. В теории предлагаемый метод выглядит следующим образом. В исходниках UE4 есть программа UnrealRemoteTool. Запустив ее на OS X, мы сможем посылать ей команды на исполнение с удаленного компьютера (компилировать, паковать и т.п.). В нашем случае посылаться команды будут с ПК работающего под Windows и на котором ведется разработка в UE4: редактируется контент, пишется код проекта и т.д. В чистом остатке, после правильной настройки, мы сможем напрямую из редактора UE4 компилировать и паковать проект под iOS также как это делается в случае с обычной PC сборкой. Оттуда же, вы сможете устанавливать готовые ipa на все iOS устройства подключенные к вашему ПК. Далее приведена детальная инструкция, как настроить все программы и оборудование на обеих системах. Поехали
Шаг 1: Для начала нам нужно получить доступ к исходникам UE4. Если они уже у вас есть из неофициальных источников, то можете пропустить этот шаг. Если же вы официально зарегистрированный разработчик Unreal Engine 4 и имеете активную подписку, то вам нужно сделать следующее. Зайдите на сайт GitHub и зарегистрируйтесь там, если у вас еще нет аккаунта. Войдите под ним. Далее перейдите на сайт Unreal Engine – авторизуйтесь там и в настройках аккаунта (раздел Account) укажите своей GitHub аккаунт в соответствующей строке. Сохраните изменения. Далее ваша дорога лежит на GH-страницу Epic Games в GitHub: github.com/EpicGames/ — в списке репозиториев выберите UnrealEngine. В правом верхнем углу нажмите кнопку Fork, а в появившемся окне с выбором аккаунта, выберите ваш GitHub аккаунт. Убедитесь, что забрана версия 4.2 и старше. После этого вы переместитесь на страницу вашего личного ответвления движка. Рекомендуется прочитать целиком все описание на странице, прежде чем двигаться далее, но главное, что вам нужно тут сделать, это скачать два архива Required_1of2.zip и Required_2of2.zip, которые находятся в параграфе Getting up and running. Осталось скачать GitHub клиенты для локальной работы с исходниками. Для Windows его можно скачать здесь, а для OS X вот здесь.
Далее для каждой операционной системы нужно выполнить свой набор шагов по отдельности. Начнем с Mac OS X, а завершим настройку уже на PC, после чего вы сможете свободно вести разработку под iOS платформу.
Mac OS X
Шаг 2: Первым делом нужно обновить систему до как минимум версии 10.8, а лучше до последней на данный момент версии Maveriсks (10.9.x). В левом верхнем углу кликаем на яблоко, выбираем About This Mac -> Software Update. Вы переместитесь в AppStore и если доступны обновления установите их.
Шаг 3: Затем установить XCode. Он бесплатный, скачать его можно отсюда.
Шаг 4: Для того чтобы разрабатывать проекты под iOS, нужно быть зарегистрированным в Apple Developer Program. Программа стоит 99 $/год. Сейчас стало довольно легко получить статус девелопера, не нужно отправлять ни каких факсов для этого. Для тех, кто еще не зарегистрирован, советую начать отсюда. Для тех же, кто уже зарегистрирован, нужно создать сертификат и Provision profile на его основе для своей игры, а также желательно задуматься и об AppID, чтобы в полной мере иметь возможность тестировать GameCenter, iCloud, IAP и Push сообщения. Все это можно сделать в Member Center. Делайте все в точности с описанием на сайте и процесс не займет у вас много времени. Обратите внимание, что для установки Provision profile-а на OS X компьютере, достаточно скачать его и открыть двойным кликом. Откроется XCode и все. Ни каких дополнительных сообщений не появится – это нормально. С установкой сертификатов на компьютер все обстоит чуть сложнее, но тем не менее более прозрачно (вы сможете сами их увидеть в приложении Keychain после импорта). Единственное, могут возникнуть проблемы у бывших UDK разработчиков, у которых остался сертификат (который можно скачать с сайта Apple), но нет закрытого и открытого ключа, которые использовались для генерации сертификата. В таком случае идите на сайт Apple, создайте новый сертификат, опять же следуя инструкциям, а затем создайте новый Provision Profile на основе него. AppID от этих действий не пострадает, как и все уже имеющийся приложения и provision/distribution profile-ы.
Шаг 5: После того как вы импортируете сертификат и Provision profile в систему, вам нужно экспортировать сертификат и его закрытый ключ обратно. Для этого откройте Applications -> Utilities -> Keychain Access.app. В верхнем-левом окошке выберите login, ниже выберите My Certificates, а затем найдите свой импортированный сертификат в списке справа. Кликните по нему правой кнопкой и выберите Export. Сначала экспортируйте его с расширением *.cer, а затем раскройте его, выделите появившийся ключик и экспортируйте его выбрав расширение *.p12. Два этих файла, а также ваш Provision profile понадобятся вам на PC позже, поэтому сохраните их на флешку или например в Dropbox.
Шаг 6: Теперь нам нужно забрать исходники с GitHub-а. Для этого открываем терминал OS X: Applications -> Unitilites -> Terminal.app. Можно обойтись и без него, но с ним будет и быстрее, и гораздо удобнее в итоге. Скоро поймете почему.
Шаг 7: Перейдите в корневой каталог введя команду:
На заметку: Если вас попросят ввести пароль, вводите его, не обращая внимания на неподвижность каретки. Так и должно быть. Введите пароль вслепую и нажмите Enter.
Шаг 8: Создайте новую папку в корневом каталоге:
Шаг 9: Убедитесь, что для данной папки есть все права доступа:
Шаг 10: Далее установите скачанный клиент GitHub на Mac. Запустите его, авторизуйтесь под своим аккаунтом. В левом столбце вы увидите список аккаунтов, с которых можно скачивать репозитории: выберите свой аккаунт. В появившемся справа списке репозиториев выберите *Ваш_Аккаунт*/UnrealEngine и нажмите Clone To Computer. В качестве папки для клонирования укажите созданную вами ранее папку UE4, находящуюся в корневом каталоге жесткого диска.
ВАЖНО: Четко соблюдайте все пути и директории для клонирования репозиториев, создания UE4 проектов и т.п., иначе ваш проект просто не соберется из-за ненайденных тут и там файлов. В данный момент система очень чувствительна к изменению расположения исходников движка и самих проектов!
Шаг 11: Обратите внимание, что скачанные ранее zip файлы не надо распаковывать на OS X. Тут нужен только исходный код.
Шаг 12: После того, как исходники скопируются на ваш компьютер, вернитесь в командную строку и выполните следующую команду:
Она запустит на выполнение утилиту UnrealRemoteTool, которая с этого момента будет слушать команды с вашего PC под управлением Windows. Обратите внимание, что мы запустили ее в цикле. Если вдруг утилита закроется из-за ошибки, например, то она откроется заново и продолжит работу. Таким образом вы можете всегда держать включенным ваш OS X компьютер и в любой момент паковать с его помощью iOS проекты. На случай полного выключение питания Mac-а, можно настроить его так, чтобы он включался после нештатного выключения. Делается это следующим образом: System Preferences -> Energy Saver включаем галочку Start up automatically after a power failure. Теперь, чтобы каждый раз не запускать вручную Terminal и не выполнять for команду для запуска UnrealRemoteTool выполним следующий набор команд в окне Terminal (нужно открыть новое окно, так как текущее занято ожиданием команд от UnrealRemoteTool):
перед вами откроется окно Finder с каталогом IOS. Найдите там файл StartUnrealRemoteTool.command. Нажмите по нему правой кнопкой, выберите пункт меню Open With -> TextEdit.app
В открывшемся файле напишите следующие команды
нажмите в самом верху, слева File -> Save. Теперь откройте настройки системы System Preferences -> User & Groups выберите свой аккаунт в левом окне, и перейдите на вкладку Login Items слева-сверху. Нажмите на плюсик на открывшейся закладке, перейдите в корень и выберите файл StartUnrealRemoteTool.command. Таким образом, при каждом старте системы UnrealRemoteTool будет запускаться автоматически и ваш Mac будет всегда готов к работе.
Шаг 13: В OS X нам осталось узнать название вашего компьютера и настроить Files Sharing. Зайдите в System Preferences -> Sharing и поставьте галочку рядом с File Sharing. Выберите пункт Allow access for All Users. Наверху окна вы увидите название вашего компьютера. Нажмите на Edit и в появившемся окошечке переназовите его так, чтобы в нем не было пробелов. Например HGSMacMini. Обратите внимание на постфикс .local в конце названия вашего компьютера. Запишите куда-нибудь на бумажку все название вместе с постфиксом, оно скоро нам понадобится.
Windows
Шаг 14: Для работы с code-based проектами в Windows и для возможности скомпилировать из исходников сам движок, необходимо установить Visual Studio 2013 (не ниже). Подойдет бесплатная Express версия; скачать ее можно здесь.
Шаг 15: Запустите один раз VS2013 после завершения установки; выберите тему оформление; выберите привычную конфигурацию среды; на предложение авторизоваться – авторизуйтесь (понадобится, если в дальнейшем захотите использовать TFS Online в качестве системы контроля версий)
Шаг 16: Далее установите GitHub клиент на Windows. После установки авторизуйтесь со своим аккаунтом, а второй и третий шаг можете пропустить. Далее откройте настройки клиента (шестеренка, справа-сверху) и в поле Clone Path введите C:\UE4 – нажмите кнопку Update. Теперь можно выкачать исходники из интернета. Нажимаем на плюсик в верхнем-левом углу, перейдите на вкладку Clone. Аналогично тому, как это было сделано в OS X, выбираем свой аккаунт в левой колонке, а в правой UnrealEngine и нажимаем Clone внизу окна.
Шаг 17: Опционально: Если вы планируете работать с TFS в качестве системы контроля версий, то на данном этапе необходимо отключить забранный проект в GitHub, иначе он будет выбивать вас из под TFS, всякий раз, когда вы будете пытаться открыть Solution проекта в VS2013. На основном экране клиента, в левом столбце должен отображаться проект UnrealEngine. Нажмите на него правой кнопкой и выберите Remove. Далее закройте GitHub, перейдите в папку C:\UE4\UnrealEngine и удалите скрытую папку .git – если она не удаляется, перезагрузите компьютер или воспользуйтесь программой анлокером и удалите ее.
Шаг 18: После того как исходники скопируются, по очереди откройте ранее скачанные zip файлы (вместо стандартной утилиты Windows, лучше воспользуйтесь WinRar или др.): Required_1of2.zip и Required_2of2.zip — извлеките их содержимое в папку C:\UE4\UnrealEngine с заменой.
Шаг 19: Далее в папке C:\UE4\UnrealEngine создайте текстовый файл и изменить его название вместе с расширением на следующее: UE4Games.uprojectdirs – откройте его в Notepad++ или в обычном Notepad и добавить в него `./` (без кавычек, только точку и слеш). Сохраните файл.
Шаг 20: Теперь перейдите в папку С:\UE4\UnrealEngine\Engine\Saved\UnrealBuildTool и откройте файл BuildConfiguration.xml (лучше всего открывать этот и все последующие файлы в Notepad++, чтобы не повредить кодировку. Аккуратно пользуйтесь вставкой).
Внизу перед закрывающим тегом (в версии 4.3 данный раздел уже есть в начале файла конфигурации — редактировать нужно его) вставьте следующий xml код:
заменив при этом HGSMacMini.local на название вашего OS X компьютера, которое записывали ранее. Сохраните файл.
Шаг 21: Теперь по очереди откройте два следующих файла:
и убедитесь, что в секции присутствует следующая строка (если ее нет, ее надо вставить, или исправить false на true):
Сохраните файлы, в случае внесения изменений
Шаг 22: Перейдите в папку C:\UE4\UnrealEngine\Engine\Build\IOS и откройте файл UE4Game-Info.plist (теперь точно в Notepad++) и найдите свойство CFBundleURLName. Вам нужно заменить его на значение Bundle указанного при создании вашего Provision profile, который был установлен в OS X. Обычно он выглядит следующий образом: `com.AwesomeDeveloper.CoolGame` — без кавычек. Вместо CoolGame может быть * если у вас так был настроен бандл (на выпуск нескольких игр). Это нормально. Далее, найдите строчку:
и замените com.epicgames на значение из вашего бандла, но в этот раз намеренно опуская название игры. Сохраните файл предварительно убедившись, что кодировка соответствует UTF-8 without BOM. Это можно сделать, нажав в меню Notepad++ пункт Encoding.
Шаг 23: Пора вспомнить о нашем сертификате и provision profile. Не покидая папки, скопируйте в нее свой provision profile, который был установлен в OS X, и переназовите его в UE4Game.mobileprovision
Шаг 24: Осталось импортировать сертификат. Нажмите на кнопку Пуск и введите в поиске название MMC.exe и нажмите Enter. В появившемся окне, нажмите File -> Add/Remove Snap-in… В появившемся окне, в левом столбце выберите из списка Certificates, затем нажмите кнопку Add, в появившемся диалоговом окне укажите My user account и нажмите Finish, а затем и OK. Диалог закроется, а в левом столбце основного окна появится пункт Certificates – Current User. Разверните его и выберите папку Personal -> Certificates. Щелкните правой кнопкой по центральной части окна, где отображаются сертификаты и выберите All Tasks -> Import. В появившемся окне мастера, нажмите Next. Найдите свой сертификат экспортированный в OS X на диске, выберите его. Нажимайте Next, а потом Finish. После этого снова нажмите All Tasks -> Import -> Next. Но на этот раз найдите экспортированный закрытый ключ с расширением *.p12 выбрав его предварительно среди фильтров. Затем нажмите Next, появится предложение установить на него пароль. Пропускайте, иначе при автоматической паковке проекта в UE4, возможны отказы в доступе. И также жмите Next, затем Finish. Все подготовительные работы завершены. Закройте MMC.exe. На предложение сохраниться, откажитесь. К сертификатам это отношения не имеет.
Шаг 25: Наконец вы можете запустить C:\UE4\UnrealEngine\GenerateProjectFiles.bat файл для генерации проекта движка и вспомогательных программ. Как только скрипт отработает, запустите сгенерированный UE4.sln в первый раз (это solution самого движка). Наверху, в настройках проекта выберите Development Editor и Win64, предварительно посмотрев вот это видео, чтобы не возникло вопросов где выбирать Win64. Далее в Solution Explorer выделите проект UE4, нажмите по нему правой кнопкой и выберите Build. Движок будет компилироваться 15-40 минут. Все зависит от процессора и дисковой системы, как отмечалось ранее. После завершения сборки самого движка (проект UE4), в Solution Explorer раскройте фильтр Programs и соберите проект UnrealFrontend, что бы на выходе получить одноименную программу. Она пригодится для профилирования кода, а также чтобы избежать сообщений об ошибках при запаковке и установке проектов на устройства через Launch Tool в редакторе.
Шаг 26: По завершении сборки вы сможете открыть готовый редактор UE4, который располагается вот здесь: C:\UE4\UnrealEngine\Engine\Binaries\Win64\UE4Editor.exe. На старте, вам будет предложено создать проект. Выберите Code Base Project, снимите галочку с Include Starter Content, а в качестве директории выберите C:\UE4\UnrealEngine\ — напоминаю, директория очень важна! Затем нажмите Create Project.
Шаг 27: Окно создания проекта закроется и откроется Visual Studio 2013 с исходным кодом вашего нового code-based проекта. Все что нужно, это выбрать в Solution Explorer ваш проект и нажав по нему правой кнопкой выбрать Build.
Шаг 28: После компиляции проекта, запустите снова UE4Editor.exe и выберите свой проект из списка. После открытия, вы попадете на карту созданную по умолчанию подходящую для тестирования базовой функциональности проекта (возможность сборки и разворачивания на устройствах). Поэтому сохраните эту карту в директорию вашего проекта. Для начала она послужит вам в качестве вашей стартовой карты, для запаковки проекта. Далее откройте настройки Edit -> Project Settings -> Maps & Modes и укажите в поле Game Default Map только что сохраненную карту. Чуть ниже, убедитесь, что в поле Default GameMode указан GameMode вашего проекта, который вы создали и скомпилировали. Например IdolGameMode. Если он не выбран, выберите его из списка.
Шаг 29: Не покидая настройки перейдите в раздел Packaging и разверните верхнюю секцию Project. Снимите галочку с Full Rebuild иначе при каждой сборке проекта, будет перекомпилироваться весь движок, а это очень-очень долго! Full Rebuild стоит применять только при сборке релизных или других важных билдов, где полная сборка действительно необходима.
Шаг 30: Остался последний шаг, сконфигурировать проект под iOS. Находясь в настройках, перейдите в раздел iOS и нажмите на кнопку конфигурации. Все, ваш проект готов к запаковке и загрузке на девайсы.
Шаг 31: Для того чтобы запаковать проект в *.ipa файл, закройте настройки и нажмите в основном окне редактора File -> Package Project -> iOS. Выберите директорию, куда вы хотите поместить готовый ipa файл и нажмите OK. Начнется компиляция и запаковка проекта. По окончании запаковки в указанной директории появится папка с названием платформы, для которой производилась сборка (в нашем случае это iOS) и в ней вы найдете заветный ipa файл с игрой. Стоит отметить, что запаковка может быть довольно долгой, а за ее прогрессом можно следить в окне Window -> Output Log. Процесс может занять от нескольких минут, до нескольких часов, если у вас стоит слабая машина под OS X. Тут все зависит от ваших финансовых возможностей. Но стоит отметить, что после первой компиляции и регулярном изменении только контента проекта в самом редакторе, запаковка занимает меньше минуты даже на слабом Mac Mini.
Шаг 32: Если все пройдет штатно, и сборка завершится успехом, вы получите ipa файл, который можно загрузить на устройство, например, при помощи iTunes. Добавьте ipa в iTunes (или положите его в папку к остальным приложениям на диске, и он сам его увидит). Подключите устройство к компьютеру, на вкладке Apps выберите в списке ваше приложение и нажмите Install. Осталось синхронизировать ваш девайс и приложение будет установлено на девайс.
Шаг 33: Как альтернативный метод запуска приложений на девайсах (можно запускать одновременно на нескольких), в редакторе, в правой части меню, нажать на стрелочку рядом с кнопкой Launch и выбрать из списка нечто типа All_iOS_On_YourPC, а затем нажать на кнопку Launch. Начнется запаковка проекта и установка на подключенные девайсы (Mac также включен в работу).
Заключение
Вот и все. Ваше рабочее место готово к созданию iOS проектов на UE4 прямиком с вашего ПК под управлением Windows. В заключении отмечу, что данный метод работает только c code-based проектами. Однако, вы легко можете превратить любой Blueprint проект в code-based, просто добавив в него пустой файл с кодом: в редакторе нажмите File -> Add Code To Project. Таким образом проект станет code-based и будет нормально собираться выше указанным методом.
На данный момент метод был проверен на следующих версиях движка: 4.2.x, 4.3
Xcode
Xcode is a complete developer toolset for creating apps for Mac, iPhone, iPad, Apple Watch, and Apple TV. Xcode brings user interface design, coding, testing, debugging, and submitting to the App Store into a unified workflow.
Downloading and updating Xcode
The current release of Xcode is available as a free download from the Mac App Store. The Mac App Store will notify you when an update is available or you can have macOS update automatically as it becomes available.
The latest beta version and previous versions of Xcode can be downloaded from the Downloads page. To download Xcode, simply sign in with your Apple ID. Apple Developer Program membership is not required.
Learning about Xcode
For step-by-step guidance on how to use Xcode to build, test, and submit apps to the App Store, take a look at Xcode documentation. You can also learn about the latest features and capabilities in Xcode. For details on the latest released versions, including each beta release, view the Xcode release notes.
Submitting apps to the App Store
Xcode provides an integrated workflow for Apple Developer Program members to prepare and submit apps to the App Store. To submit your apps, use the latest version of Xcode available on the Mac App Store or, when available, the latest Release Candidate from the Downloads page.
Minimum SDK requirements for App Store submissions.
iOS and iPadOS apps submitted to the App Store must be built with Xcode 13 and the iOS 15 SDK. And watchOS apps submitted to the App Store must be built with Xcode 13 and the watchOS 8 SDK.
Minimum requirements and supported SDKs
| Xcode Version | Minimum OS Required | SDK | Architecture | Deployment Targets | Simulator | Swift |
|---|---|---|---|---|---|---|
| Xcode 13.4 | macOS Monterey 12 | iOS 15.5 macOS 12.3 tvOS 15.4 watchOS 8.5 DriverKit 21.4 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-15.5 iPadOS 13-15.5 macOS 10.9-12.3 tvOS 9-15.4 watchOS 2-8.5 DriverKit 19-21.4 |
iOS 12.4-15.5 tvOS 12.4-15.4 watchOS 7-8.5 |
Swift 4 Swift 4.2 Swift 5.6 |
| Xcode 13.3 | macOS Monterey 12 | iOS 15.4 macOS 12.3 tvOS 15.4 watchOS 8.5 DriverKit 21.4 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-15.4 iPadOS 13-15.4 macOS 10.9-12.3 tvOS 9-15.4 watchOS 2-8.5 DriverKit 19-21.4 |
iOS 12.4-15.4 tvOS 12.4-15.4 watchOS 7-8.5 |
Swift 4 Swift 4.2 Swift 5.6 |
| Xcode 13.2 | macOS Big Sur 11.3 | iOS 15.2 macOS 12.1 tvOS 15.2 watchOS 8.3 DriverKit 21.2 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-15.2 iPadOS 13-15.2 macOS 10.9-12.2 tvOS 9-15.2 watchOS 2-8.3 DriverKit 19-21.2 |
iOS 10.3.1-15.2 tvOS 10.2-15.2 watchOS 3.2-8.3 |
Swift 4 Swift 4.2 Swift 5.5 |
| Xcode 13.1 | macOS Big Sur 11.3 | iOS 15 macOS 12 tvOS 15 watchOS 8 DriverKit 21.0.1 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-15 iPadOS 13-15 macOS 10.9-12 tvOS 9-15 watchOS 2-8 DriverKit 19-21.0.1 |
iOS 10.3.1-15 tvOS 10.2-15 watchOS 3.2-8 |
Swift 4 Swift 4.2 Swift 5.5 |
| Xcode 13 | macOS Big Sur 11.3 | iOS 15 macOS 11.3 tvOS 15 watchOS 8 DriverKit 20.4 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-15 iPadOS 13-15 macOS 10.9-11.3 tvOS 9-15 watchOS 2-8 DriverKit 19-20.4 |
iOS 10.3.1-15 tvOS 10.2-15 watchOS 3.2-8 |
Swift 4 Swift 4.2 Swift 5.5 |
| Xcode 12.5.1 | macOS Big Sur 11 | iOS 14.5 macOS 11.3 tvOS 14.5 watchOS 7.4 DriverKit 20.4 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-14.7 iPadOS 13-14.7 macOS 10.9-11.5 tvOS 9-14.7 watchOS 2-7.6 DriverKit 19-20.4 |
iOS 10.3.1-14.5 tvOS 10.2-14.5 watchOS 3.2-7.4 |
Swift 4 Swift 4.2 Swift 5.4 |
| Xcode 12.5 | macOS Big Sur 11 | iOS 14.5 macOS 11.3 tvOS 14.5 watchOS 7.4 DriverKit 20.4 |
i386 x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 |
iOS 9-14.6 iPadOS 13-14.6 macOS 10.9-11.4 tvOS 9-14.6 watchOS 2-7.5 DriverKit 19-20.4 |
iOS 10.3.1-14.5 tvOS 10.2-14.5 watchOS 3.2-7.4 |
Swift 4 Swift 4.2 Swift 5.4 |
| Xcode 12.4 | macOS Catalina 10.15.4 (Intel-based Mac) |
Legend
Minimum OS Required: The version of macOS required to install this version of Xcode.
SDK: The version of SDKs included in this version of Xcode.
Architecture: The architectures supported for development by this version of Xcode.
OS: The iOS, iPadOS, macOS, tvOS, and watchOS versions supported by this version of Xcode for developing, installing, and debugging applications.
Simulator: Versions of iOS, tvOS, and watchOS simulators supported for development by this version of Xcode.
Swift: Version of Swift supported for development by this version of Xcode.
Providing feedback and reporting bugs
Your feedback goes a long way toward making Xcode even better. With Feedback Assistant, you can report issues or request enhancements to APIs and tools. Provide detailed information about issues, including your system and developer tool versions, and any relevant crash logs or console messages. To ask questions and find answers from Apple engineers and other developers, visit the Apple Developer Forums.
Invalid private key and certificate pairing
If you receive an error message saying, «Xcode could not find a valid private-key/certificate pair for this profile in your keychain,” the Keychain Access application on your Mac is missing either the public or private key for the certificate you’re using to sign your app.
This often happens when you’re trying to sign and build your app from a different Mac than the one you originally used to request your code signing certificate. It can also happen if your certificate has expired or has been revoked. Ensure that your app’s provisioning profile contains a valid code signing certificate, and that the Keychain Access application on your Mac contains that certificate, the private key originally used to generate that certificate, and the WWDR Intermediate Certificate.
For instructions on how to resolve this and other code signing errors, review the Code Signing Support page.
Apple security updates
For information on the security content of Xcode updates, visit the Apple security updates page.
XCode
XCode — среда для разработки программного обеспечения под операционные системы Apple. С ее помощью можно писать и проверять код, запускать программы, описывать графические интерфейсы и их связь с кодом.

XCode — IDE: эта аббревиатура означает Integrated development environment, что переводится как «интегрированная (или единая) среда разработки». Так называют инструменты, в которых есть все необходимое как для написания кода, так и сборки готового проекта.
Среда предназначена для операционной системы macOS. Проекты, которые создаются с ее помощью, также можно запускать на iOS, tvOS и watchOS. XCode поддерживает языки программирования Swift, Objective-C, C, C++, а также AppleScript, Python, Ruby и Java. Сторонние разработчики также реализовали поддержку других языков, в том числе старых: Haskell, Pascal, Ada и других.
XCode бесплатно доступен для пользователей macOS в Mac App Store. Актуальная версия на март 2022 года — 13.2.1.
Кто пользуется XCode
- iOS-разработчики, а также создатели приложений для «умных» часов и телевизоров от Apple: они управляются системами watchOS и tvOS соответственно.
- macOS-разработчики, создающие новое ПО для этой ОС или переносящие на нее уже существующие программы на Swift, AppleScript и Objective-C.
- Разработчики на Python, Ruby, Java и других языках, создающие кроссплатформенные или веб-приложения.
Применение XCode
- Быстрое и удобное написание кода с помощью специального текстового редактора с подсветкой и проверкой синтаксиса, подсчетом строк и другими функциями.
- Создание и организация крупных проектов, которые могут включать в себя много файлов и папок. Среда помогает структурировать работу.
- Компиляция или интерпретация кода, то есть его преобразование в понятный машине формат.
- Выполнение кода. С помощью IDE можно запускать программу и отслеживать результаты ее работы.
- Отладка и тестирование — работа по поиску и устранению ошибок в коде.
- Создание графических интерфейсов и их связь с кодом.
- Автоматизация сборки готового проекта.
- Упрощение архитектурных и конструкторских задач: их помогают решать вспомогательные инструменты, которые наглядно показывают структуру кода или проекта.
Из чего состоит среда XCode
Инструменты, которые есть в этой IDE, подобраны так, чтобы разработчику было легко пройти полный цикл создания приложения, в первую очередь под платформы Apple.
Редактор кода. Он похож на текстовый редактор, но отличается более широкой функциональностью. Редактор кода распознает синтаксис языка, подсвечивает его конструкции для большей читаемости. Он может сигнализировать об ошибках в синтаксисе или давать краткую справку о той или иной команде. Он подсчитывает строки, имеет гибкие возможности для навигации по коду и выполняет множество других функций.
В редакторе программист пишет код, а потом сохраняет его в виде файла в нужном формате. XCode позволяет его открывать и редактировать.
Редактор графических интерфейсов. В XCode по умолчанию входит приложение Interface Builder — редактор интерфейсов. С его помощью можно быстро создавать GUI для своих программ. Редактор содержит наборы — палитры стандартных элементов интерфейса: их можно создавать, настраивать и редактировать.
Созданный интерфейс можно связать с кодом и таким образом получить полностью функциональное приложение.
Поддержка языков программирования. Программирование в XCode во многом адаптировано под Swift и Objective-C — языки, которые активнее всего используются в экосистеме Apple. Также для комфортного использования IDE поддерживаются другие языки программирования.
Компиляторы. Компилятор — это программа, которая переводит написанную программу в машинные коды для ее запуска. Также существуют интерпретаторы — они, в отличие от компиляторов, исполняют код построчно, а не преобразуют его полностью.
В IDE должны быть компиляторы для языков, которые она поддерживает: без них программу нельзя запустить и протестировать в среде. XCode пользуется преобразованным GCC, или GNU Compiler Collection: это свободная коллекция компиляторов для популярных языков программирования.

Отладчики. Отладчик — составная часть любой масштабной IDE, программа для поиска и отладки ошибок. С его помощью можно:
- трассировать код, то есть выполнять его построчно;
- ставить метки или точки останова в определенных местах программы;
- следить за состоянием сущностей в разные моменты;
- настраивать логику для трассировки, остановки и других действий.
Так программисту легче отследить, в какой момент времени в коде происходит ошибка и с чем она связана. Он сможет быстрее понять, как ее исправить.
В XCode используется отладчик на основе GDB, или GNU Debugger — свободного программного обеспечения для отладки.

API. API помогает связать между собой разные сервисы и программные продукты. В IDE должны быть API для разных направлений разработки. В случае с XCode это в первую очередь API, которые нужны для программирования под Apple: Cocoa, Carbon и другие. Например, с их помощью разработчик связывает между собой интерфейс и код.
Фреймворки и библиотеки. Это дополнительные средства разработки, которые помогают расширить язык и добавляют новые возможности: функциональные и архитектурные.
В XCode входят фреймворки для создания серверного, десктопного и мобильного ПО, программ для интернета вещей и «умных» устройств, нейронных сетей и многого другого.
Документация. В XCode по умолчанию входит большая часть документации Apple, которая посвящена среде разработки и ее инструментам. При изучении с нуля с документацией придется сверяться часто, но она должна быть под рукой не только у новичка.
Контроль версий. Системы контроля версий позволяют нескольким программистам работать одновременно и вносить в код разные изменения, а потом объединять их. С системами можно откатываться к предыдущим состояниям или иметь сразу несколько «веток» разработки. Наиболее популярная — Git. XCode поддерживает Git «из коробки»: создавать «точки сохранения», откатываться к ним или сливать версии можно прямо из интерфейса IDE.
Симулятор. С помощью XCode можно «симулировать» запуск программы на мобильном устройстве Apple. Это помогает понять, как приложение будет работать на реальном телефоне или планшете, и качественнее его протестировать.
Swift Playgrounds. Так называется среда для обучения языку Swift и разработки на нем. Имеет характерный интерфейс, поддержку фреймворка для графических интерфейсов SwiftUI и возможность мгновенного отображения результата кода. В Swift Playgrounds входят интерактивные уроки для быстрого обучения концепциям языка, также среда подходит для экспериментов и небольших проектов.
Создать «игровую площадку», или playground, можно в том же меню, что и проект.
Особенности XCode 12 и 13
В 2020 году была выпущена XCode 12, в 2021-м — 13. В этих последних у среды немного изменился интерфейс и появились новые возможности:
- подробная аналитика всего, что происходит при запуске программы, вплоть до расхода емкости аккумулятора;
- более удобная работа с элементами графического интерфейса;
- улучшенные автозавершение команд, контроль версий, тестирование и эмуляция мобильных устройств;
- тестирование покупок в приложениях-магазинах;
- режим vim, популярного текстового редактора для Linux;
- возможность создавать собственную документацию, в том числе с помощью языков для ее описания, и многое другое.
О различиях можно прочитать на странице IDE в официальном магазине Apple. Разные версии IDE поддерживаются в различных версиях самой macOS.
XCode в других ОС
Официально XCode разработана только для операционных систем от Apple. Чтобы запустить среду на Linux или Windows, потребуется виртуальная машина с macOS. Неофициальными сборками IDE для других ОС, которые можно найти в сети, мы не рекомендуем пользоваться.
Также существуют онлайн-сервисы, которые предоставляют «виртуальную среду» macOS со всеми ее возможностями. С ними пользователи Linux и Windows смогут работать в XCode.
Apple разрабатывает облачную версию среды — Xcode Cloud. На момент написания статьи проект находится в стадии закрытого бета-тестирования. Это значит, что для участия в тестировании разработчик должен написать в Apple, где решат, открывать ли ему доступ к продукту.
Как начать пользоваться XCode
Пользователь macOS может перейти в официальный магазин Apple и скачать оттуда XCode. Для этого не обязателен платный аккаунт разработчика: он потребуется для публикации приложений в магазине. XCode распространяется бесплатно.
После установки среды можно начать новый проект. IDE выглядит как своеобразный браузер файлов со вкладками, дополнительными панелями и инструментами. Разобраться в ней можно с помощью справки.
Чтобы работать в любой IDE, нужно знать один из языков, которые она поддерживает. Для программирования под macOS или iOS необходимо знать особенности этих систем.
Получить актуальную теорию и практику под контролем ментора можно на курсе SkillFactory.