SecondaryRSyncUsername

SecondaryRSyncUsername

#Overview

name: SecondaryRSyncUsername

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 4 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 SecondaryRSyncUsername is to specify the username for remote builds using RSync on a secondary Mac server when developing for iOS platforms in Unreal Engine 5.

This setting variable is primarily used by the iOS platform-specific modules within Unreal Engine, specifically the IOSPlatformEditor and IOSTargetPlatform. These modules are responsible for handling iOS-specific development tasks and build processes.

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. It can be modified through the project settings in the Unreal Editor.

SecondaryRSyncUsername interacts with other iOS-related settings, such as SecondaryRemoteServerName and bSupportSecondaryMac. It’s part of a group of settings that enable remote building on a secondary Mac server.

Developers must be aware that this variable is only relevant when supporting a secondary Mac for remote builds. It should be set correctly to match the SSH Private Key for the secondary Mac user to ensure successful remote build operations.

Best practices when using this variable include:

  1. Ensuring that the username matches the SSH configuration on the secondary Mac server.
  2. Using this in conjunction with other secondary Mac settings for a complete remote build setup.
  3. Keeping this information secure and not exposing it in version control systems.
  4. Regularly verifying and updating this setting if the secondary Mac server configuration changes.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:3015, 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:1106

Scope (from outer to inner):

file
function     void FIOSTargetSettingsCustomization::BuildSecondaryRemoteMacBuildingSection

Source code excerpt:


	// Add RSync Username Property
	TSharedRef<IPropertyHandle> RSyncUsernamePropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, SecondaryRSyncUsername));
	IDetailPropertyRow& RSyncUsernamePropertyRow = RemoteBuildingGroup.AddPropertyRow(RSyncUsernamePropertyHandle);
	RSyncUsernamePropertyRow
		.ToolTip(RSyncUsernamePropertyHandle->GetToolTipText())
		.CustomWidget()
		.NameContent()
		[

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

Scope (from outer to inner):

file
function     FReply FIOSTargetSettingsCustomization::OnGenerateSSHKey

Source code excerpt:

			RemoteServerPort = "22";
		}
		RSyncUsername = Settings.SecondaryRSyncUsername;
	}

	FString Path = FPlatformMisc::GetEnvironmentVariable(TEXT("APPDATA"));
	FString Destination = FString::Printf(TEXT("%s\\Unreal Engine\\UnrealBuildTool\\SSHKeys\\%s\\%s\\RemoteToolChainPrivate.key"), *Path, *RemoteServerAddress, *RSyncUsername);
	if (FPaths::FileExists(Destination))
	{

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

Scope (from outer to inner):

file
function     int32 FIOSTargetPlatform::CheckRequirements

Source code excerpt:

	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

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

Scope (from outer to inner):

file
class        class UIOSRuntimeSettings : public UObject

Source code excerpt:

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

    // Optional path on the secondary remote mac where the build files will be copied. If blank, ~/UE5/Builds will be used.
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (EditCondition = "bSupportSecondaryMac", ConfigHierarchyEditable))
    FString SecondaryRemoteServerOverrideBuildPath;

    // The install directory of cwrsync.

#References in C# build files

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

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

				// Parse the username
				string IniUserName;
				if ((bIsPrimary ? Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "RSyncUsername", out IniUserName) : Ini.GetString("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "SecondaryRSyncUsername", out IniUserName)) && !String.IsNullOrEmpty(IniUserName))
				{
					UserName = IniUserName;
				}
			}

			// Split port out from the server name