UE4_Remote_Build

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

扫描二维码关注公众号,回复: 3137148 查看本文章

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

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

Create a new file: /etc/rsyncd.conf

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

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

from Mac to

for example:

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:

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:

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:

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


When receiving an error like:

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:

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


When building there is an error like:

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:

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:

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)重新导入,保证电脑上只有一个证书和一个描述文件!!!

猜你喜欢

转载自blog.csdn.net/qq_24835213/article/details/79046564
UE4