bAutomaticSigning
bAutomaticSigning
#Overview
name: bAutomaticSigning
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 6 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 bAutomaticSigning is to control whether automatic signing through Xcode is used for iOS builds in Unreal Engine 5. This setting is primarily related to the iOS development and build process.
Based on the callsites, this variable is used in the iOS Platform Editor and iOS Target Platform modules of Unreal Engine. These subsystems are responsible for iOS-specific build settings and deployment processes.
The value of this variable is set in the IOSRuntimeSettings class, which is part of the IOSRuntimeSettings module. It is defined as a UPROPERTY with the GlobalConfig and EditAnywhere attributes, meaning it can be modified in the project settings.
This variable interacts with other iOS-related settings, such as the IOSTeamID, BundleIdentifier, and SignCertificate properties. It also affects the visibility of certain UI elements in the iOS target settings customization.
Developers must be aware that:
- This setting is only relevant for iOS development on Mac platforms.
- It affects the command line arguments passed to the IPhonePackager tool during the build process.
- When enabled, it may change the behavior of certificate and provisioning profile management.
Best practices when using this variable include:
- Ensure that the Apple developer account is properly set up if enabling automatic signing.
- Keep the IOSTeamID setting up-to-date when using automatic signing.
- Be aware of the implications on the build process and adjust other related settings accordingly.
- Consider the security implications of automatic signing and whether manual control over signing is required for your project.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3024, 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/Developer/IOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp:325
Scope: file
Source code excerpt:
BuildCategory.AddProperty(SignCertificateProperty)
.Visibility(EVisibility::Hidden);
AutomaticSigningProperty = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, bAutomaticSigning));
BuildCategory.AddProperty(AutomaticSigningProperty)
#if PLATFORM_MAC
.Visibility(EVisibility::Visible);
#else
.Visibility(EVisibility::Hidden);
#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp:816
Scope (from outer to inner):
file
function void FIOSTargetSettingsCustomization::BuildPListSection
function SETUP_SOURCEONLY_PROP
Source code excerpt:
SETUP_SOURCEONLY_PROP(bEnableRemoteNotificationsSupport, OnlineCategory)
// SETUP_SOURCEONLY_PROP(bAutomaticSigning, ProvisionCategory)
// Handle max. shader version a little specially.
{
ShaderVersionPropertyHandle = DetailLayout.GetProperty(GET_MEMBER_NAME_CHECKED(UIOSRuntimeSettings, MetalLanguageVersion));
ShaderVersionPropertyHandle->SetOnPropertyValueChanged(OnUpdateShaderStandardWarning);
#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSPlatformEditor/Private/IOSTargetSettingsCustomization.cpp:1881
Scope (from outer to inner):
file
function bool FIOSTargetSettingsCustomization::IsAutomaticSigningEnabled
Source code excerpt:
bool FIOSTargetSettingsCustomization::IsAutomaticSigningEnabled() const
{
bool bAutomaticSigning = false;
AutomaticSigningProperty->GetValue(bAutomaticSigning);
return bAutomaticSigning;
}
void FIOSTargetSettingsCustomization::OnBundleIdentifierChanged(const FText& NewText, ETextCommit::Type CommitType, TSharedRef<IPropertyHandle> InPropertyHandle)
{
if(!IsBundleIdentifierValid(NewText.ToString()))
{
#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSTargetPlatform/Private/IOSTargetPlatform.cpp:269
Scope (from outer to inner):
file
function int32 FIOSTargetPlatform::CheckRequirements
Source code excerpt:
BundleIdentifier = BundleIdentifier.Replace(TEXT("_"), TEXT(""));
bool bAutomaticSigning = false;
GConfig->GetBool(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("bAutomaticSigning"), bAutomaticSigning, GEngineIni);
FString TeamID;
GConfig->GetString(TEXT("/Script/IOSRuntimeSettings.IOSRuntimeSettings"), TEXT("IOSTeamID"), TeamID, GEngineIni);
FString ProjectPath = FPaths::ConvertRelativePathToFull(FPaths::GetProjectFilePath());
#if PLATFORM_MAC
#Loc: <Workspace>/Engine/Source/Developer/IOS/IOSTargetPlatform/Private/IOSTargetPlatform.cpp:280
Scope (from outer to inner):
file
function int32 FIOSTargetPlatform::CheckRequirements
Source code excerpt:
FString ScriptPath = FPaths::ConvertRelativePathToFull(FPaths::EngineDir() / TEXT("Build/BatchFiles/RunDotnet.sh"));
FString IPPPath = FPaths::ConvertRelativePathToFull(FPaths::EngineDir() / TEXT("Binaries/DotNET/IOS/IPhonePackager.exe"));
FString CommandLine = FString::Printf(TEXT("\"%s\" \"%s\" Validate Engine -project \"%s\" -bundlename \"%s\" -teamID \"%s\" %s %s"), *ScriptPath, *IPPPath, *ProjectPath, *(BundleIdentifier), *(TeamID), (bForDistribtion ? TEXT("-distribution") : TEXT("")), bAutomaticSigning ? TEXT("-autosigning") : TEXT(""));
#else
FString CmdExe = FPaths::ConvertRelativePathToFull(FPaths::EngineDir() / TEXT("Binaries/DotNET/IOS/IPhonePackager.exe"));
FString CommandLine = FString::Printf(TEXT("Validate Engine -project \"%s\" -bundlename \"%s\" %s"), *ProjectPath, *(BundleIdentifier), (bForDistribtion ? TEXT("-distribution") : TEXT("")) );
FString RemoteServerName;
FString SecondaryRemoteServerName;
FString RSyncUsername;
#Loc: <Workspace>/Engine/Source/Runtime/IOS/IOSRuntimeSettings/Classes/IOSRuntimeSettings.h:435
Scope (from outer to inner):
file
class class UIOSRuntimeSettings : public UObject
Source code excerpt:
// Whether to use automatic signing through Xcode
UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (EditCondition = "!MacTargetPlatform.XcodeProjectSettings.ShouldDisableIOSSettings"))
bool bAutomaticSigning;
// The team ID of the apple developer account to be used to autmatically sign IOS builds.
// This can be overridden in Turnkey with "RunUAT Turnkey -command=ManageSettings"
// This value is stripped out when making builds.
UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (ConfigHierarchyEditable))
FString IOSTeamID;
#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:314
/// true if using Xcode managed provisioning, else false
/// </summary>
[ConfigFile(ConfigHierarchyType.Engine, "/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bAutomaticSigning")]
public readonly bool bAutomaticSigning = false;
/// <summary>
/// The IOS Team ID
/// </summary>
[ConfigFile(ConfigHierarchyType.Engine, "/Script/IOSRuntimeSettings.IOSRuntimeSettings", "IOSTeamID")]