bSupportSecondaryMac

bSupportSecondaryMac

#Overview

name: bSupportSecondaryMac

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 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of bSupportSecondaryMac is to enable support for a secondary remote Mac to facilitate iOS/tvOS debug and build processes in Unreal Engine 5. This setting is specifically related to the iOS and tvOS platforms’ development and deployment workflows.

This setting variable is primarily used in the IOS Runtime Settings module and the Turnkey Support module of Unreal Engine 5. These modules are responsible for managing iOS-specific runtime configurations and streamlining the build and deployment process for iOS and tvOS platforms.

The value of this variable is set in the IOSRuntimeSettings class, which is defined in the IOSRuntimeSettings.h file. It is declared as a UPROPERTY with the GlobalConfig and EditAnywhere attributes, allowing it to be configured through the Unreal Engine editor interface.

There are other variables that interact with bSupportSecondaryMac, such as SecondaryRemoteServerName, which specifies the name or IP address of the secondary remote Mac. These related variables are typically only editable when bSupportSecondaryMac is set to true.

Developers must be aware that enabling this option will affect the build and deployment process for iOS and tvOS projects. When enabled, it allows the use of a secondary Mac for building and debugging, which can be useful in certain development setups or team environments.

Best practices when using this variable include:

  1. Only enable it if you actually need to use a secondary Mac for iOS/tvOS development.
  2. Ensure that the secondary Mac is properly configured and accessible on the network.
  3. Properly set up the related variables like SecondaryRemoteServerName when enabling this option.
  4. Consider the impact on your build and deployment workflows when enabling or disabling this feature.
  5. Regularly review and update this setting as your development environment and needs change.

#Setting Variables

#References In INI files

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

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Source/Editor/TurnkeySupport/Private/TurnkeySupportModule.cpp:522

Scope (from outer to inner):

file
class        class FTurnkeySupportCallbacks
function     static void CookOrPackage

Source code excerpt:

             if (IniPlatformName == TEXT("IOS") || IniPlatformName == TEXT("TvOS"))
             {
				 bool bSupportSecondaryMac = false;
				 GConfig->GetBool(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("bSupportSecondaryMac"), bSupportSecondaryMac, GEngineIni);
				 if (bSupportSecondaryMac)
				 {
					 FString OtherCommandLine = FString::Printf(TEXT("SetSecondaryRemoteMac -platform=%s -ProjectFilePath=%s"), *IniPlatformName.ToString().ToLower(), *ProjectPath);
					 FTurnkeyEditorSupport::RunUAT(OtherCommandLine, PlatformInfo->DisplayName, ContentPrepDescription, ContentPrepTaskName, ContentPrepIcon, &AnalyticsParamArray);
				 }
				 else
				 {

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

Scope (from outer to inner):

file
class        class UIOSRuntimeSettings : public UObject

Source code excerpt:

    // Support a secondary remote Mac to support to facilitate iOS/tvOS debug ?
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (DisplayName = "Enable Secondary remote Mac"))
    bool bSupportSecondaryMac;
    
    // The name or ip address of the remote mac which will be used to build IOS
    UPROPERTY(GlobalConfig, EditAnywhere, Category = "Remote Build", meta = (EditCondition = "bSupportSecondaryMac", ConfigHierarchyEditable))
    FString SecondaryRemoteServerName;
    
    // The secondary mac users name which matches the SSH Private Key, for remote builds using RSync.

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

Scope (from outer to inner):

file
function     UIOSRuntimeSettings::UIOSRuntimeSettings

Source code excerpt:

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