bGenerateCrashReportSymbols
bGenerateCrashReportSymbols
#Overview
name: bGenerateCrashReportSymbols
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 1
C++ source file. Also referenced in 3
C# build files meaning it may affect the build system logic.
#Summary
#Usage in the C# source code and build system
The purpose of bGenerateCrashReportSymbols is to control the generation of crash report symbols for iOS and tvOS platforms in Unreal Engine 5. This setting is specifically related to debugging and crash reporting functionalities for Apple’s mobile and TV operating systems.
This setting variable is primarily used by the iOS and tvOS subsystems of Unreal Engine. Based on the callsites, it’s clear that the IOSPlatform.Automation, TVOSPlatform.Automation, and UEBuildIOS modules rely on this variable.
The value of this variable is set in the IOSRuntimeSettings configuration file. It can be accessed and modified through the project settings in the Unreal Engine editor, specifically under the iOS Runtime Settings section.
This variable interacts with other build and deployment processes, particularly those related to symbol file generation and inclusion during the build and packaging phases for iOS and tvOS targets.
Developers must be aware of several important points when using this variable:
- Setting this to true will generate additional debug symbol files (.udebugsymbols), which can significantly increase the build time and output size.
- These symbol files are crucial for crash report analysis and debugging on iOS and tvOS devices.
- While helpful for development and testing, including these symbols in production builds may not be desirable due to increased package size.
Best practices when using this variable include:
- Enable it during development and testing phases to facilitate easier debugging and crash analysis.
- Consider disabling it for final release builds to reduce package size, unless detailed crash reports are necessary for your production environment.
- Ensure you have adequate storage and build time resources when enabling this option, as it can significantly increase both.
- Coordinate with your QA and operations teams to determine the appropriate setting for different build configurations (debug, release candidate, production, etc.).
Regarding the associated variable, there isn’t a specific associated variable mentioned in the provided input. However, it’s worth noting that this variable is closely related to other iOS and tvOS build settings, and developers should consider it in conjunction with other debugging and optimization settings for these platforms.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3023, section: [/Script/IOSRuntimeSettings.IOSRuntimeSettings]
- INI Section:
/Script/IOSRuntimeSettings.IOSRuntimeSettings
- Raw value:
false
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/IOS/IOSRuntimeSettings/Classes/IOSRuntimeSettings.h:236
Scope (from outer to inner):
file
class class UIOSRuntimeSettings : public UObject
Source code excerpt:
// 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.
UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Generate .udebugsymbols file"))
bool bGenerateCrashReportSymbols;
// Enable generation of xcode archive package
UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Generate xcode archive package"))
bool bGenerateXCArchive;
// Enable Advertising Identified
#References in C# build files
This variable is referenced in the following C# build files:
Location: <Workspace>/Engine/Source/Programs/AutomationTool/IOS/IOSPlatform.Automation.cs:1404
if (Params.EngineConfigs.TryGetValue(SC.StageTargetPlatform.PlatformType, out PlatformGameConfig))
{
PlatformGameConfig.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGenerateCrashReportSymbols", out bIncludeSymbols);
}
if (bIncludeSymbols)
{
FileReference SymbolFileName = FileReference.Combine((SC.IsCodeBasedProject ? SC.ProjectRoot : SC.EngineRoot), "Binaries", "IOS", SC.StageExecutables[0] + ".udebugsymbols");
if (FileReference.Exists(SymbolFileName))
{
Location: <Workspace>/Engine/Source/Programs/AutomationTool/TVOS/TVOSPlatform.Automation.cs:142
if (Params.EngineConfigs.TryGetValue(SC.StageTargetPlatform.PlatformType, out PlatformGameConfig))
{
PlatformGameConfig.GetBool("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGenerateCrashReportSymbols", out bIncludeSymbols);
}
if (bIncludeSymbols)
{
FileReference SymbolFileName = FileReference.Combine((SC.IsCodeBasedProject ? SC.ProjectRoot : SC.EngineRoot), "Binaries", "TVOS", SC.StageExecutables[0] + ".udebugsymbols");
if (FileReference.Exists(SymbolFileName))
{
Location: <Workspace>/Engine/Source/Programs/UnrealBuildTool/Platform/IOS/UEBuildIOS.cs:242
/// Whether to generate a dSYM file or not.
/// </summary>
[ConfigFile(ConfigHierarchyType.Engine, "/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGenerateCrashReportSymbols")]
public readonly bool bGenerateCrashReportSymbols = false;
/// <summary>
/// The minimum supported version
/// </summary>
[ConfigFile(ConfigHierarchyType.Engine, "/Script/IOSRuntimeSettings.IOSRuntimeSettings", "MinimumiOSVersion")]