We use macOS to remotely build Unreal Engine builds from under Windows

Any Windows user who has embarked on the exciting path of cross-platform development is once faced with the problem of the impossibility of building "apple" builds from the working environment: to build and sign an application requires a device with macOS.



We have two options:



  1. Non-optimal: run to the Mac every time, synchronize the project and start the build.
  2. Optimal: set up a remote build on your / rented / office mac.


It is the best option that will be analyzed in this article, which I decided to write after having suffered for a week with the solution of the above problem.



At one point, I almost believed that no one is using remote assembly, or this is something elementary, but it was the lack of intelligible documentation and a few articles with outdated information that forced me to write this material, which, I hope, will help readers optimize the assembly process cross-platform applications.







Step 1: Configure RSync on your macOS device



At this point, we will be helped by one of the above tutorials with outdated information , namely the chapter RSync.



Next, I'll post a translation of this chapter:



Rsync is a utility that the Unreal Engine uses to transfer and synchronize files between computers.



Before starting to set up a UE4 project, we need to set up RSync on our mac device.



We need to create an rsync.plist file in / Library / LaunchDaemons

Make sure the file has permission rw-r – r– and paste the following into it:




<?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>


Also create a rsyncd.conf file in / etc /



Make sure the file has rw-r – r– permissions and paste the following into it:




[root]
path = /
hosts allow = 192.168.1.0/24
uid = root
gid = wheel
read only = false
comment = Root volume


Hosts — IP , mac . , 192.168.1.x



, :



sudo launchctl load /Library/LaunchDaemons/rsync.plist


Finally, reboot your Mac.



On my own I will add that sometimes Unreal Engine can throw “command not found” errors during the build process. If you encounter this error, try changing the Login shell from zsh to sh . To do this, open Users & Groups in System Preferences, right click on your user, select Advanced Options, and change the Login shell to / bin / sh .



I also recommend using the same RSync version (at least the same major version) on both devices.



On your Windows machine, open the folder with the engine, go to the DeltaCopy folder (UE_4.23 \ Engine \ Extras \ ThirdPartyNotUE \ DeltaCopy \ Binaries \) and call the console command along this path:



./rsync --version


Step 2: setting up Windows



  1. Open your UE4 project, Project settings, iOS, Remote build options tab
  2. Check the IP address of the poppy and enter it in the Remote Server Name field . If you are using port forwarding, you can also specify the port required to establish an SSH connection at the end of the IP address. By default it is 22
  3. In the RSync User Name field, enter your macOS username
  4. Click Generate SSH and follow the instructions
  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)


That's all. Now you can build iOS builds from your Windows environment. If you still have difficulties, write - I will try to help.



All Articles