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:
- IOSPlatformEditor
- IOSTargetPlatform
- 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:
- RSyncUsername: The username for the remote server
- SecondaryRemoteServerName: A backup remote server
- SSHPrivateKeyLocation: The location of the SSH private key for secure connections
Developers should be aware of the following when using this variable:
- It must be set correctly for remote iOS builds to function properly.
- It can include a port number (e.g., “192.168.1.100:22”).
- If left empty, it may prevent the build process from proceeding.
Best practices for using this variable include:
- Ensure the RemoteServerName is accurate and accessible from the development machine.
- Use IP addresses instead of hostnames to avoid potential DNS issues.
- Regularly verify the connection to the remote server.
- Consider using a secondary remote server for redundancy.
- Ensure that the corresponding RSyncUsername is also set correctly.
- 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]
- INI Section:
/Script/IOSRuntimeSettings.IOSRuntimeSettings
- Raw value: ``
- Is Array:
False
#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.");