bGeneratedSYMFile

bGeneratedSYMFile

#Overview

name: bGeneratedSYMFile

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. 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 bGeneratedSYMFile is to control the generation of dSYM (debug symbols) files for iOS builds in Unreal Engine 5. This setting is primarily related to the build and debugging process for iOS applications.

This setting variable is primarily used by the iOS-specific modules of Unreal Engine, specifically:

  1. The IOSTargetPlatform module, which handles platform-specific functionality for iOS builds.
  2. The IOSRuntimeSettings module, which manages runtime settings for iOS applications.

The value of this variable is set in the IOSRuntimeSettings class, which is defined in the IOSRuntimeSettings.h file. It is initialized to false by default in the constructor of the UIOSRuntimeSettings class in IOSRuntimeSettings.cpp.

This variable interacts closely with other iOS-specific build settings, particularly:

  1. bGeneratedSYMBundle: Controls the generation of dSYM bundles for third-party crash tools.
  2. bGenerateXCArchive: Manages the generation of XCArchive files.

Developers should be aware of the following when using this variable:

  1. Setting bGeneratedSYMFile to true enables the generation of dSYM files, which are crucial for code debugging and profiling on iOS devices.
  2. The dSYM files can significantly increase the build time and output size, so it should be enabled only when necessary for debugging or crash analysis.
  3. This setting is exposed in the project settings under the iOS platform section, allowing easy configuration through the Unreal Engine editor.

Best practices when using this variable include:

  1. Enable bGeneratedSYMFile for debug builds and when you need to analyze crashes or profile your application.
  2. Disable it for release builds to reduce build time and output size, unless you need crash reporting capabilities in your released app.
  3. When enabling bGeneratedSYMFile, consider also enabling bGeneratedSYMBundle if you’re using third-party crash reporting tools.
  4. Always ensure that your build settings align with your development and deployment requirements, balancing between debugging capabilities and build efficiency.

#Setting Variables

#References In INI files

Location: <Workspace>/Engine/Config/BaseEngine.ini:2994, 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/IOSTargetPlatform/Private/IOSTargetPlatform.h:93

Scope (from outer to inner):

file
class        class FIOSTargetPlatform : public TNonDesktopTargetPlatformBase<FIOSPlatformProperties>
function     virtual void GetBuildProjectSettingKeys

Source code excerpt:

	{
		OutSection = TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings");
		InBoolKeys.Add(TEXT("bGeneratedSYMFile"));
		InBoolKeys.Add(TEXT("bGeneratedSYMBundle"));
		InBoolKeys.Add(TEXT("bGenerateXCArchive"));
		if (bIsTVOS)
		{
			InStringKeys.Add(TEXT("MinimumTVOSVersion"));
		}

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

Scope (from outer to inner):

file
class        class UIOSRuntimeSettings : public UObject

Source code excerpt:

	// Enable generation of dSYM file
	UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Generate dSYMs for code debugging and profiling"))
	bool bGeneratedSYMFile;

	// Enable generation of dSYM bundle
	UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Generate dSYMs as a bundle for third party crash tools"), meta = (EditCondition = "bGeneratedSYMFile"))
	bool bGeneratedSYMBundle;

	// Enable generation of a .udebugsymbols file, which allows offline, platform-independent symbolication for the Malloc Profiler or external crash reporting tools. Requires a dSYM file or bundle.

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

Scope (from outer to inner):

file
function     UIOSRuntimeSettings::UIOSRuntimeSettings

Source code excerpt:

	MinimumiOSVersion = EIOSVersion::IOS_Minimum;
    bBuildAsFramework = true;
	bGeneratedSYMFile = false;
	bGeneratedSYMBundle = false;
	bGenerateXCArchive = false;
	bSupportSecondaryMac = false;
	bUseRSync = true;
	bCustomLaunchscreenStoryboard = false;
	AdditionalPlistData = TEXT("");

#References in C# build files

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

Location: <Workspace>/Engine/Source/Programs/UnrealBuildTool/Platform/IOS/UEBuildIOS.cs:228

		/// Whether to generate a dSYM file or not.
		/// </summary>
		[ConfigFile(ConfigHierarchyType.Engine, "/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGeneratedSYMFile")]
		[CommandLine("-generatedsymfile")]
		public readonly bool bGeneratedSYMFile = false;

		/// <summary>
		/// Whether to generate a dSYM bundle (as opposed to single file dSYM)
		/// </summary>