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:
- Ensuring that the username matches the SSH configuration on the secondary Mac server.
- Using this in conjunction with other secondary Mac settings for a complete remote build setup.
- Keeping this information secure and not exposing it in version control systems.
- 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]
- 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: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