bUseRSync

bUseRSync

#Overview

name: bUseRSync

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.

#Summary

#Usage in the C++ source code

The purpose of bUseRSync is to enable or disable the use of RSync for remote builds on a Mac when developing for iOS platforms using Unreal Engine 5.

This setting variable is primarily used by the iOS platform-specific modules of Unreal Engine, specifically within the IOSPlatformEditor and IOSRuntimeSettings subsystems. These modules are responsible for managing iOS-specific build and runtime settings.

The value of this variable is set in the UIOSRuntimeSettings constructor (IOSRuntimeSettings.cpp) with a default value of true. It can be modified through the Unreal Engine editor’s project settings interface for iOS.

bUseRSync interacts with other iOS-specific variables such as RSyncUsername, RemoteServerName, and SecondaryRSyncUsername. These variables work together to configure the remote build process for iOS projects.

Developers must be aware that this variable affects the method used for transferring files during remote builds. When enabled, it uses RSync, which can be more efficient for incremental builds by only transferring changed files.

Best practices when using this variable include:

  1. Ensure that RSync is properly set up on both the local and remote machines.
  2. Configure the related settings (RSyncUsername, RemoteServerName) correctly for your development environment.
  3. Consider disabling it if you encounter issues with RSync or if your network setup doesn’t support it efficiently.
  4. Keep in mind that changing this setting may require adjustments to your build scripts or processes.

#Setting Variables

#References In INI files

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

Scope (from outer to inner):

file
function     void FIOSTargetSettingsCustomization::BuildRemoteBuildingSection

Source code excerpt:


	// Add Use RSync Property
	TSharedRef<IPropertyHandle> UseRSyncPropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, bUseRSync));
	BuildCategory.AddProperty(UseRSyncPropertyHandle)
		.Visibility(EVisibility::Hidden);

	// Add RSync Username Property
	TSharedRef<IPropertyHandle> RSyncUsernamePropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, RSyncUsername));
	IDetailPropertyRow& RSyncUsernamePropertyRow = RemoteBuildingGroup.AddPropertyRow(RSyncUsernamePropertyHandle);

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

Scope (from outer to inner):

file
function     void FIOSTargetSettingsCustomization::BuildSecondaryRemoteMacBuildingSection

Source code excerpt:


	// Add Use RSync Property
	TSharedRef<IPropertyHandle> UseRSyncPropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, bUseRSync));
	BuildCategory.AddProperty(UseRSyncPropertyHandle)
		.Visibility(EVisibility::Hidden);

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

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

Scope (from outer to inner):

file
class        class UIOSRuntimeSettings : public UObject

Source code excerpt:

    // Enable the use of RSync for remote builds on a mac
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (DisplayName = "Use RSync for building IOS", ConfigHierarchyEditable))
    bool bUseRSync;

    // 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.

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

Scope (from outer to inner):

file
function     UIOSRuntimeSettings::UIOSRuntimeSettings

Source code excerpt:

	bGenerateXCArchive = false;
	bSupportSecondaryMac = false;
	bUseRSync = true;
	bCustomLaunchscreenStoryboard = false;
	AdditionalPlistData = TEXT("");
	AdditionalLinkerFlags = TEXT("");
	AdditionalShippingLinkerFlags = TEXT("");
    bGameSupportsMultipleActiveControllers = false;
	bAllowRemoteRotation = true;