RemoteServerName

RemoteServerName

#Overview

name: RemoteServerName

The value of this variable can be defined or overridden in .ini config files. 1 .ini config file referencing this setting variable.

It is referenced in 5 C++ source files. Also referenced in 1 C# build file meaning it may affect the build system logic.

#Summary

#Usage in the C++ source code

The purpose of RemoteServerName is to specify the name or IP address of the remote Mac machine used for building iOS applications in Unreal Engine 5. This setting is crucial for the iOS development workflow, particularly for remote building and deployment.

This setting variable is primarily used by the iOS platform-specific modules and subsystems within Unreal Engine 5, specifically:

  1. IOSPlatformEditor
  2. IOSTargetPlatform
  3. IOSRuntimeSettings

The value of this variable is set in the project’s configuration files, typically in the engine.ini file under the [/Script/IOSRuntimeSettings.IOSRuntimeSettings] section.

RemoteServerName interacts with several other variables, including:

Developers should be aware of the following when using this variable:

  1. It must be set correctly for remote iOS builds to function properly.
  2. It can include a port number (e.g., “192.168.1.100:22”).
  3. If left empty, it may prevent the build process from proceeding.

Best practices for using this variable include:

  1. Ensure the RemoteServerName is accurate and accessible from the development machine.
  2. Use IP addresses instead of hostnames to avoid potential DNS issues.
  3. Regularly verify the connection to the remote server.
  4. Consider using a secondary remote server for redundancy.
  5. Ensure that the corresponding RSyncUsername is also set correctly.
  6. Keep the remote server’s software and build tools up to date to maintain compatibility with the latest Unreal Engine version.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:3010, section: [/Script/IOSRuntimeSettings.IOSRuntimeSettings]

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp:918

Scope (from outer to inner):

file
function     void FIOSTargetSettingsCustomization::BuildRemoteBuildingSection

Source code excerpt:


	// Remote Server Name Property
	TSharedRef<IPropertyHandle> RemoteServerNamePropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, RemoteServerName));
	IDetailPropertyRow& RemoteServerNamePropertyRow = RemoteBuildingGroup.AddPropertyRow(RemoteServerNamePropertyHandle);
	RemoteServerNamePropertyRow
		.ToolTip(RemoteServerNamePropertyHandle->GetToolTipText())
		.CustomWidget()
		.NameContent()
		[

#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp:1609

Scope (from outer to inner):

file
function     FReply FIOSTargetSettingsCustomization::OnGenerateSSHKey

Source code excerpt:

	if (IsPrimary)
	{
		if (Settings.RemoteServerName.FindChar(':', colonIndex))
		{
			RemoteServerAddress = Settings.RemoteServerName.Left(colonIndex);
			RemoteServerPort = Settings.RemoteServerName.RightChop(colonIndex + 1);
		}
		else
		{
			RemoteServerAddress = Settings.RemoteServerName;
			RemoteServerPort = "22";
		}
		RSyncUsername = Settings.RSyncUsername;
	}
	else
	{

#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSTargetPlatform/Private/IOSTargetPlatform.cpp:284

Scope (from outer to inner):

file
function     int32 FIOSTargetPlatform::CheckRequirements

Source code excerpt:

	FString CmdExe = FPaths::ConvertRelativePathToFull(FPaths::EngineDir() / TEXT("Binaries/DotNET/IOS/IPhonePackager.exe"));
	FString CommandLine = FString::Printf(TEXT("Validate Engine -project \"%s\" -bundlename \"%s\" %s"), *ProjectPath, *(BundleIdentifier), (bForDistribtion ? TEXT("-distribution") : TEXT("")) );
	FString RemoteServerName;
	FString SecondaryRemoteServerName;
	FString RSyncUsername;
	FString SecondaryRSyncUsername;
	GConfig->GetString(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("RemoteServerName"), RemoteServerName, GEngineIni);
	GConfig->GetString(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("RSyncUsername"), RSyncUsername, GEngineIni);
	GConfig->GetString(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("SecondaryRemoteServerName"), SecondaryRemoteServerName, GEngineIni);
	GConfig->GetString(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("SecondaryRSyncUsername"), SecondaryRSyncUsername, GEngineIni);
	if (RemoteServerName.Len() == 0 || RSyncUsername.Len() == 0)
	{
		bReadyToBuild |= ETargetPlatformReadyStatus::RemoveServerNameEmpty;
	}

#endif
	if (bIsTVOS)

#Loc: <Workspace>/Engine/Source/Runtime/IOS/IOSRuntimeSettings/Classes/IOSRuntimeSettings.h:288

Scope (from outer to inner):

file
class        class UIOSRuntimeSettings : public UObject

Source code excerpt:

    // The name or ip address of the remote mac which will be used to build IOS
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (ConfigHierarchyEditable))
    FString RemoteServerName;

    // The mac users name which matches the SSH Private Key, for remote builds using RSync.
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (EditCondition = "bUseRSync", DisplayName = "Username on Remote Server", ConfigHierarchyEditable))
    FString RSyncUsername;

    // Optional path on the remote mac where the build files will be copied. If blank, ~/UE5/Builds will be used.

#Loc: <Workspace>/Engine/Source/Runtime/IOS/IOSRuntimeSettings/Private/IOSRuntimeSettings.cpp:132

Scope (from outer to inner):

file
function     void UIOSRuntimeSettings::PostInitProperties

Source code excerpt:


	// We can have a look for potential keys
	if (!RemoteServerName.IsEmpty() && !RSyncUsername.IsEmpty())
	{
		SSHPrivateKeyLocation = TEXT("");

		FString RealRemoteServerName = RemoteServerName;
		if(RemoteServerName.Contains(TEXT(":")))
		{
			FString RemoteServerPort;
			RemoteServerName.Split(TEXT(":"),&RealRemoteServerName,&RemoteServerPort);
		}
		const FString DefaultKeyFilename = TEXT("RemoteToolChainPrivate.key");
		const FString RelativeFilePathLocation = FPaths::Combine(TEXT("SSHKeys"), *RealRemoteServerName, *RSyncUsername, *DefaultKeyFilename);

		FString Path = FPlatformMisc::GetEnvironmentVariable(TEXT("APPDATA"));

#References in C# build files

This variable is referenced in the following C# build files:

Location: <Workspace>/Engine/Source/Programs/UnrealBuildTool/ToolChain/RemoteMac.cs:161

				string IniServerName;

				if ((bIsPrimary ? Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "RemoteServerName", out IniServerName) : Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "SecondaryRemoteServerName", out IniServerName)) && !String.IsNullOrEmpty(IniServerName))
				{
					ServerName = IniServerName;
				}
				else
				{
					throw new BuildException("Remote compiling requires a server name. Use the editor (Project Settings > IOS) to set up your remote compilation settings.");