Русский
Русский
English
Статистика
Реклама

Из песочницы Используем macOS для удалённой сборки Unreal Engine билдов из-под Windows

Любой пользователь ОС Windows, вставший на увлекательный путь кросс-платформенной разработки, однажды сталкивается с проблемой невозможности сборки яблочных билдов из рабочего окружения: для сборки и подписания приложения требуется девайс с macOS.

У нас есть два варианта:

  1. Неоптимальный: каждый раз бегать к маку, синхронизировать проект и запускать сборку.
  2. Оптимальный: настроить удалённую сборку на вашем / арендованном / офисном маке.

Именно оптимальный вариант и будет разобран в этой статье, которую я решил написать после того, как неделю промучился с решением вышеуказанной проблемы.

В один момент я почти поверил в то, что никто не использует удалённую сборку, или это что-то элементарное, но именно отсутствие внятной документации и немногочисленные статьи с устаревшей информацией и вынудили меня написать этот материал, который, надеюсь, поможет читателям оптимизировать процесс сборки кросс-платформенных приложений.



Шаг 1: Настроить RSync на macOS девайсе


На этом этапе нам поможет один из вышеупомянутых туториалов с устаревшей информацией, а именно глава RSync.

Далее размещу перевод этой главы:

Rsync это утилита, которую Unreal Engine использует для передачи и синхронизации файлов между компьютерами.

Перед тем, как начинать настраивать UE4 проект, нам следует настроить RSync на нашем mac девайсе.

Нам нужно создать rsync.plist файл в /Library/LaunchDaemons
Убедитесь, что у файла установлены разрешения rw-rr и вставьте в него следующее:


<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>        <key>Disabled</key>        <false/>        <key>Label</key>        <string>rsync</string>        <key>Program</key>        <string>/usr/bin/rsync</string>        <key>ProgramArguments</key>        <array>                <string>/usr/bin/rsync</string>                <string>--daemon</string>        </array>        <key>inetdCompatibility</key>        <dict>                <key>Wait</key>                <false/>        </dict>        <key>Sockets</key>        <dict>            <key>Listeners</key>            <dict>                <key>SockServiceName</key>                <string>rsync</string>                <key>SockType</key>                <string>stream</string>            </dict>        </dict></dict></plist>

Также создайте файл rsyncd.conf в /etc/

Убедитесь, что файл имеет разрешения rw-rr и вставьте в него следующее:


[root]path = /hosts allow = 192.168.1.0/24uid = rootgid = wheelread only = falsecomment = Root volume

Hosts это разделённый запятыми список IP адресов машин, которые могут использовать этот mac в качестве машины для сборки. В данном случае мы указываем все машины из локальной сети, указав 192.168.1.x

Для проверки работоспособности, запустите:

sudo launchctl load /Library/LaunchDaemons/rsync.plist

И, наконец, перезагрузите ваш мак.

От себя добавлю, что иногда Unreal Engine может кидать ошибки command not found в процессе сборки. Если вы столкнётесь с этой ошибкой, попробуйте поменять Login shell с zsh на sh. Чтобы сделать это, откройте Users & Groups (пользователи и группы) в настройках системы, нажмите правой кнопкой мыши на вашего пользователя, выберите Advanced Options (дополнительный параметры) и поменяйте Login shell (оболочка входа) на /bin/sh.

Также рекомендую использовать одинаковую версию RSync (по крайней мере, одинаковую мажорную версию) на обоих девайсах.

На вашей Windows машине откройте папку с движком, перейдите в папку DeltaCopy (UE_4.23\Engine\Extras\ThirdPartyNotUE\DeltaCopy\Binaries\) и вызовите по этому пути консольную команду:

./rsync --version

Шаг 2: настройка Windows


  1. Откройте ваш UE4 проект, Project settings, iOS, вкладку Remote build options
  2. Проверьте IP адрес мака и укажите его в поле Remote Server Name. Если вы используете перенаправление портов, вы также можете указать необходимый для установления SSH соединения порт в конце IP адреса. По умолчанию это 22
  3. В поле RSync User Name укажите имя пользователя macOS
  4. Нажмите Generate SSH и следуете инструкциям
  5. Установите iTunes. Тут у вас есть два варианта (я выбрал второй):
    a. Установите iTunes через магазин Windows. Скорее всего, iTunes не будет работать и вам придётся поэкспериментировать с разрешениями
    b. Скачайте установочный файл iTunes в обход магазина Windows. Откройте официальный сайт, пролистайте вниз до Looking for other versions?, выберите Windows и скачайте установочный файл
  6. Следуйте инструкциям из официальной документации, чтобы сгенерировать provision profile и сертификат
  7. Откройте Project settings, iOS, вкладка Mobile provision и импортируйте сгенерированные provision profile и сертификат
  8. Убедитесь, что Bundle ID совпадает с ID, который вы указали при генерации сертификата (шаг 6)
  9. Если вы сгенерировали сертификат для разработки, а не для распространения (distribution), убедитесь, что значение переменной For Distribution (Project settings, Packaging) установлено на False (в противном случае, при сборке вы получите ошибку no certificate found)
  10. Убедитесь, что в пути проекта нет странных знаков (сбоки, пробелы)
  11. Запустите сборку, выбрав File, Package Project, iOS

Шаг 3: Протестируем сборку


  1. Когда сборка проекта будет окончена, вы получите .IPA файл по пути, который вы указали перед началом сборки
  2. Подключите iOS девайс к вашему PC, используя кабель
  3. Откройте iTunes
  4. Перетащите .IPA файл на ваш девайс (вкладка devices)

Вот и всё. Теперь вы сможете собирать iOS билды из вашего Windows окружения. Если же у вас до сих пор возникают трудности, пишите постараюсь помочь.
Источник: habr.com
К списку статей
Опубликовано: 31.07.2020 14:18:55
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Unreal engine

Ios

Macos

Windows

Ue4

Категории

Последние комментарии

© 2006-2021, personeltest.ru