StoreVersionOffsetArm64

StoreVersionOffsetArm64

#Overview

name: StoreVersionOffsetArm64

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 StoreVersionOffsetArm64 is to provide an offset for the store version number specifically for ARM64 architecture builds of Android applications. This variable is used in the Android platform-specific build process and deployment system of Unreal Engine.

StoreVersionOffsetArm64 is primarily used by the Android subsystem of Unreal Engine, specifically in the build and deployment tools for Android platforms. It’s referenced in the AndroidPlatform.Automation.cs, UEDeployAndroid.cs, and VSCodeProjectFileGenerator.cs files, which are part of the Unreal Build Tool (UBT) and Automation Tool.

The value of this variable is set in the AndroidRuntimeSettings section of the project’s configuration files. It’s typically read from an INI file using the Ini.GetInt32 method.

StoreVersionOffsetArm64 interacts with other variables, notably:

  1. StoreVersion: The base store version number.
  2. StoreVersionOffsetX8664: A similar offset for x64 architecture.

Developers should be aware that:

  1. This variable affects the final store version number for ARM64 builds.
  2. It’s used to create unique version numbers for different architectures.
  3. It impacts the naming of symbol files for ARM64 builds.

Best practices when using this variable include:

  1. Ensure it’s properly set in the AndroidRuntimeSettings configuration.
  2. Coordinate its value with StoreVersion and StoreVersionOffsetX8664 to maintain consistent versioning across architectures.
  3. Consider the impact on app store submissions when modifying this value.

Regarding the associated variable StoreVersionOffsetX8664:

The purpose of StoreVersionOffsetX8664 is similar to StoreVersionOffsetArm64, but it applies to x64 architecture builds for Android. It allows for separate version offsetting for x64 builds.

This variable is also used by the Android subsystem of Unreal Engine, in the same files as StoreVersionOffsetArm64.

The value is set in the same AndroidRuntimeSettings section of the configuration files.

StoreVersionOffsetX8664 interacts with StoreVersion and StoreVersionOffsetArm64, allowing for distinct versioning across different architectures.

Developers should be aware that:

  1. This variable affects the final store version number for x64 builds.
  2. It’s used alongside StoreVersionOffsetArm64 to create unique version numbers for different architectures.

Best practices include:

  1. Ensure it’s properly set in the AndroidRuntimeSettings configuration.
  2. Coordinate its value with StoreVersion and StoreVersionOffsetArm64 for consistent versioning.
  3. Consider the impact on app store submissions when modifying this value.

Both variables are crucial for managing version numbers across different Android architectures in Unreal Engine projects.

#Setting Variables

#References In INI files

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

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Source/Runtime/Android/AndroidRuntimeSettings/Classes/AndroidRuntimeSettings.h:204

Scope (from outer to inner):

file
class        class UAndroidRuntimeSettings : public UObject

Source code excerpt:

	// Offset to add to store version for APKs generated for arm64
	UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", meta = (DisplayName = "Store Version offset (arm64)"))
	int32 StoreVersionOffsetArm64;

	// Offset to add to store version for APKs generated for x86_64
	UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", meta = (DisplayName = "Store Version offset (x86_64)"))
	int32 StoreVersionOffsetX8664;

	// The visual application name displayed for end users

#References in C# build files

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

Location: <Workspace>/Engine/Source/Programs/AutomationTool/Android/AndroidPlatform.Automation.cs:3707

			if (ApkName.Contains("-arm64-"))
			{
				Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersionOffsetArm64", out StoreVersionOffset);
			}
			else if (ApkName.Contains("-x64-"))
			{
				Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersionOffsetX8664", out StoreVersionOffset);
			}
			StoreVersion += StoreVersionOffset;

Location: <Workspace>/Engine/Source/Programs/UnrealBuildTool/Platform/Android/UEDeployAndroid.cs:979

				CachedStoreVersion = StoreVersion;

				Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersionOffsetArm64", out CachedStoreVersionOffsetArm64);
				Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersionOffsetX8664", out CachedStoreVersionOffsetX8664);
			}

			if (Architecture == UnrealArch.Arm64)
			{
				return CachedStoreVersion + CachedStoreVersionOffsetArm64;

Location: <Workspace>/Engine/Source/Programs/UnrealBuildTool/ProjectFiles/VisualStudioCode/VSCodeProjectFileGenerator.cs:1196

			int StoreVersionOffsetArm64 = 0;
			Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersion", out StoreVersion);
			Ini.GetInt32("/Script/AndroidRuntimeSettings.AndroidRuntimeSettings", "StoreVersionOffsetArm64", out StoreVersionOffsetArm64);
			StoreVersionArm64 = StoreVersion + StoreVersionOffsetArm64;

			DirectoryReference SymbolPathArm64 = DirectoryReference.Combine(
				BuildProduct.OutputFile.Directory,
				Target.Name + "_Symbols_v" + StoreVersionArm64.ToString(),
				Target.Name + "-arm64");