UE4_Remote_Build

本文详细介绍如何设置远程iOS打包环境,包括Mac与Windows机器配置、证书与描述文件管理、使用Unreal Engine进行同步及常见错误排查等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Setting up remote build machine

The iOS can be built only on iMac machines. We can do it remotely, but the physical machine is required.

Basics

Make sure the user name is setup and it’s password protected (withoud password the ssh remote control won’t be possible). The user name can’t have spaces and special characters!

In Settings enable the Remote Login and Remote Management.settingupiosenviro1

Certificates

First of all, to make certificate valid, you must download the Apple Worldwide Developer Relations Certification Authority certification and import it to the Keychain (it MUST be added by import!).

After that install your development certificate to the Keychain too.

Make sure the imported certificate has “This certificate is valid” status.

Then double click on the key paired with your certificate, select “Get Info” option and make sure the “Allow all applications to access this item” is selected.

settingupiosenviro2

RSync

Unreal Engine uses RSync for syncing files with remote machine.

Make sure you are an administrator on your Mac. You may need to use sudo to create some of the files below.

Download rsync.plist and copy it to: /Library/LaunchDaemons/rsync.plist

Make sure the permissions of the file are rw-r–r–

You can check if launchd is loading the module correctly by running:

sudo launchctl load `/Library/LaunchDaemons/rsync.plist`

1

sudo launchctl load `/Library/LaunchDaemons/rsync.plist`

Create a new file: /etc/rsyncd.conf

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

1

2

3

4

5

6

7

[root]

path = /

hosts allow = 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24

uid = root

gid = wheel

read only = false

comment = Root volume

Hosts are the ip addresses that can use this machine as the build machine. In this scenario, they are all machines with ip: 192.168.0.x, 192.168.1.x and 192.168.2.x (they are all local network addresses).

Make sure the permissions of the file are rw-r–r–

Restart machine.

Setting up Windows

Setting up DeltaCopy

To use RSync on Windows you must install the DeltaCopy to the C:\DeltaCopy\ directory
Run the DeltaC.exe and setup it. The name of the profile must be the same as the name of the user name on Mac.
settingupiosenviro3

Preparing the project for building on remote machine

Make sure that this option in DefaultEngine.ini is set

[/Script/IOSRuntimeSettings.IOSRuntimeSettings] bUseRSync=True

1

2

[/Script/IOSRuntimeSettings.IOSRuntimeSettings]

bUseRSync=True

Then in the Editor in Project Settings – iOS fill the Remote Build Options section.

Fill the correct ip address of the remote builder, the path to the DeltaCopy and the user name the same as specified in the DeltaCopy.

settingupiosenviro4

Press Generate SSH key.

If it will ask if You are sure to connect, type yes!

settingupiosenviro5

Then process with the instructions from the console. Left the phassphrase empty!

If for some reason You have an error like this, it means that the key couldn’t be copied.

settingupiosenviro6

You can still do this manually. Simply copy the

~/.ssh/RemoteToolChainPrivate.key

1

~/.ssh/RemoteToolChainPrivate.key

from Mac to

c:\Users\User\AppData\Roaming\Unreal Engine\UnrealBuildTool\SSHKeys\[ip_address]\[username]\RemoteToolChainPrivate.key

1

c:\Users\User\AppData\Roaming\Unreal Engine\UnrealBuildTool\SSHKeys\[ip_address]\[username]\RemoteToolChainPrivate.key

for example:

c:\Users\User\AppData\Roaming\Unreal Engine\UnrealBuildTool\SSHKeys\192.168.0.178\user\RemoteToolChainPrivate.key

1

c:\Users\User\AppData\Roaming\Unreal Engine\UnrealBuildTool\SSHKeys\192.168.0.178\user\RemoteToolChainPrivate.key

Setting up provisioning and certificate

In the Editor in Project Settings – iOS fill the Bundle Information section.
bundles
Run the: Engine\Binaries\DotNET\IOS\IPhonePackager.exe

In this application select the uproject file of your game, then import provisioning and certificate. Then click Ready for Package.

settingupiosenviro8

You can check if provisioning and certificate has been properly imported in Project Settings – iOS section (Mobile Provision category)

If there are any problems with provisioning you can try to remove currently imported ones. They are located in following directory:

c:\Users\user\AppData\Local\Apple Computer\MobileDevice\Provisioning Profiles

1

c:\Users\user\AppData\Local\Apple Computer\MobileDevice\Provisioning Profiles

Building for iOS

With all those steps done the Engine and the Game is ready to build for iOS. Simply set Development iOS target in the Visual Studio and Build the Game. Or, you can build it via Unreal Frontend too.

Common issues

When receiving an error:

UnrealBuildTool: IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound

1

UnrealBuildTool: IPP ERROR: RPCCommand MakeApp failed with return code Error_RemoteCertificatesNotFound

Make sure you have proper provisioning and the certificate is installed on the build machine. Also check logs over this line for more detailed informations.


When deploying to iOS fails at 40% with the message:

There is a problem with the entitlements for this application (0xE8008016).

1

There is a problem with the entitlements for this application (0xE8008016).

Make sure the provisioning profile supports the device you are trying to install to.


When receiving an error like:

Failed to run init commands on 192.168.0.178. Output = /cygdrive/c/Users/User/.ssh/config: line 2: Bad configuration option: KexAlgorithms /cygdrive/c/Users/User/.ssh/config: terminating, 1 bad configuration options

1

2

Failed to run init commands on 192.168.0.178. Output = /cygdrive/c/Users/User/.ssh/config: line 2: Bad configuration option: KexAlgorithms

/cygdrive/c/Users/User/.ssh/config: terminating, 1 bad configuration options

Check the C:/%UserProfile%/.ssh/config for any lines that starts with KexAlgorithms and remove it.


When building the compiler cannot find basic headers like string or sockets make sure you’ve run xcode-select –install command on build machine.


When deploying to iOS there is an error:

DeploymentServer: Install \ Update of "MyGame.ipa" failed with Missing Bundle Identifier Error

1

DeploymentServer: Install \ Update of "MyGame.ipa" failed with Missing Bundle Identifier Error

Check if your ipa file has the correct bundle id in Info.plist


When building there is an error like:

UnrealBuildTool: IPP ERROR: Failed to copy file to C:\MyGame\Intermediate\IOS-Deploy\MyGame\Development\..\XcodeSupportFiles\MyComputer_UE4Temp.mobileprovision and there are no more retries!

1

UnrealBuildTool: IPP ERROR: Failed to copy file to C:\MyGame\Intermediate\IOS-Deploy\MyGame\Development\..\XcodeSupportFiles\MyComputer_UE4Temp.mobileprovision and there are no more retries!

You probably abort the IPhonePackager tool in the middle of the previous build. Try to run it once again.


When building there is an error that looks like:

1 [main] rsync 8772 child_copy: linked dll data write copy failed, 0x6F8000..0x6F8008, done 0, windows pid 8772, Win32 error 998

1

1 [main] rsync 8772 child_copy: linked dll data write copy failed, 0x6F8000..0x6F8008, done 0, windows pid 8772, Win32 error 998

According to this page there might be a dll override in Cygwin. Try to restart Windows.


When building there is an error that looks like:

UnrealBuildTool: ERROR: System.IO.IOException: File exists. UnrealBuildTool: UnrealBuildTool: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) UnrealBuildTool: at System.IO.Path.InternalGetTempFileName(Boolean checkHost) UnrealBuildTool: at UnrealBuildTool.RemoteToolChain.PreBuildSync()

1

2

3

4

5

UnrealBuildTool: ERROR: System.IO.IOException: File exists.

UnrealBuildTool:

UnrealBuildTool:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

UnrealBuildTool:    at System.IO.Path.InternalGetTempFileName(Boolean checkHost)

UnrealBuildTool:    at UnrealBuildTool.RemoteToolChain.PreBuildSync()

The Temp directory on Windows is full. Clean up the Temp directory.

 

 

    按照上面的步骤试了两天,遇到了很多问题,最终解决,可以成功打包。

需要注意的是:

 

1.remote bulid最终是以Windows上的证书和描述文件来给IPA进行签名的,所以要求Mac上面不需要安装描述文件,只需要在系统KeyChain下面Import和Windows上一样的证书和Apple Worldwide Developer Relations Certification Authority 证书。

 

2.Windows上面的证书和描述文件要用Engine\Binaries\DotNET\IOS\IPhonePackager.exe进行导入。

 

3.如遇到cer证书无法给IPA签名的情况

UATHelper: Packaging (iOS):   Code Signing Error: Signing certificate is invalid. Signing certificate "iPhone Developer:xxxxxxxxx, is not valid for code signing. It may have been revoked or expired.

删除电脑上所有的证书和描述文件(Windows&MAC)重新导入,保证电脑上只有一个证书和一个描述文件!!!

 

 

4.远程打包AR面部捕捉app(ue4.20),打包失败,需要将MAC系统升至10.3.6以上,并且更新Xcode版本至10.0以上即可

Remote Administrator (Radmin) 是应用最为广泛的一款远程控制软件,这是它的最新版本,已经附带了服务端 30 天时间限制的破解,主要的更新内容是: 兼容性: 支持 Windows Vista SP1 (32-bit and 64-bit). 支持 Windows Server 2008 (32-bit and 64-bit). 支持左手鼠标; 支持 27 国语言; 性能: 更快更平滑的控制体验. Radmin 详细介绍 + Radmin(Remote Administrator)是一款屡获殊荣的安全远程控制软件,帮助您在远程电脑上工作,如同您坐在那台电脑前一样。 该软件是理想的远程访问解决方案。 您可以从多个地点访问同一台电脑,并使用高级文件传输、远程关机、Telnet、操作系统集成的NT安全性系统支持,以及其它功能。Radmin在速度、可靠性及安全性 方面的表现超过了所有其它远程控制软件! Radmin是一款屡获殊荣的远程控制软件,它将远程控制、外包服务组件、以及网络监控结合到一个系统里,提供目前为止最快速、强健而安全的工具包。 完全兼容WindowsVista Radmin3.2完全支持WindowsVista32-bit和64-bit,包括用户账户控制(UAC)和快速用户切换。RadminServer3.2支持WindowsVista/XP/2003/2000(32-bit)和WindowsVista/XP/2003(64-bit)操作系统。RadminViewer3.2支持WindowsVista/XP/2003/2000/ME/98/95/NT4.0(32-bit)和WindowsVista/XP/2003(64-bit)操作系统。 最高的工作速度 Radmin是目前为止最快的远程控制软件,在10Mbps局域网的测试中,它比流行的VNC要快上150倍,也超过了PcAnywhere。它针对低带宽连接而优化(如调制解调器)。通过调制解调器连接,屏幕刷新率可以达到每秒钟更新5-10。如果连接到LAN,您可以实时在远程电脑上工作,每秒钟屏幕刷新率超过100。 最高的安全级别 Radmin以加密方式工作,所有的数据、屏幕图像、鼠标移动和键盘信号都使用256-位AES强密钥,每个连接都采用随机生成的密钥。Radmin的用户验证既可以使用Windows活动目录或Kerberos支持的安全性验证,或它自己的个别用户权限和安全登录/密码验证。Radmin安全性使用基于Diffie-Hellman的密钥交换,密钥长度2048-位。另外IP过滤器限制对特点主机和网络的访问。 文本和语音聊天 文本聊天、语音聊天和发送消息模式,都是Radminversion3新开发的功能,它们有助于您与所连接的远程电脑上操作的用户进行交流。 使用简单 Radmin非常易于学习和使用。我们大多数的客户都认为Radmin的主要优点在于简易。所有的报告界面很直观,而程序也非常易于使用。不同于那些臃肿软件(bloatware),Radmin没有无用的“增值”功能使它难以使用,不易学习或拖累它的性能。 安全的“拖放式”文件传输,带有“增量复制”(DeltaCopy)功能 使用Radmin您可以在资源管理器风格的界面中轻松拖放,对远程电脑上的任何文件以加密方式进行传输。Radmin在复制文件的时候有项功能,可以允许仅更新在两台电脑上不同的部分文件。这项功能称为“增量复制”(DeltaCopy)因为只复制文件的差异(“增量”)。它允许在网络故障之后继续复制操作,从故障发生的地方开始复制而非从头开始。此功能在从/往远程电脑上复制任何文件时自动使用。 支持多连接 Radmin支持同时多个连接到同一远程屏幕。这意味着您可以邀请朋友或同事远程观看您的屏幕(很适合开会),或从您自己的电脑屏幕上查看或控制若干远程屏幕(非常适合远程外包服务或教学)。 免费通过E-mail提供技术支持 Famatech通过e-mail对注册客户提供免费的技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值