Skip to main content

Installing platform SDKs for Unreal Engine

When you run a build with UET, it will automatically detect the platform SDKs required for the version of Unreal Engine being used, download and install them in a portable way, and configure the Unreal Engine build to use them.

This includes platform SDKs for:

  • Windows
  • macOS
  • Linux
  • Android
  • IOS

You can also configure how platform SDKs should be installed for console platforms. Refer to configuring SDK management for console platforms for more information.

Installing platform SDKs on your computer

Outside of uet build, you may want to install the platform SDKs for particular version of Unreal Engine. This is extremely useful if you upgrade Unreal Engine or start developing for a new platform.

To install the platform SDKs on your computer for an installed version of Unreal Engine, use:

uet install-sdks -e 5.3

You can also install the platform SDKs for a version of Unreal Engine located in a specified directory, including a source engine downloaded from GitHub or Perforce:

uet install-sdks -e C:\Work\UE5

Configuring SDK management for console platforms

For obvious reasons, UET can not ship with support for installing console platform SDKs out-of-the-box. Instead, UET provides a method for specifying how a console platform's SDK should be installed in JSON. You can then specify tell UET about this platform SDK at runtime in one of two ways.

If you are configuring this platform SDK to install on build servers automatically, configure your build server to provide the following environment variable to UET:

UET_PLATFORM_SDK_CONFIG_PATH_PlatformName=\\NETWORK\Share\To\ConfidentialPlatform.json

If you are installing platform SDKs on your local computer with uet install-sdks, specify it through one or more additional --console arguments like so:

uet install-sdks ... --console PlatformName=\\NETWORK\Share\To\ConfidentialPlatform.json

The format of the JSON file (without comments) is as follows:

{
// The version of the SDK, used to tell whether this
// version of the SDK has already been installed.
"Version": "",
// If this SDK is shared by multiple console platforms,
// this is the common console platform name. This property
// should be omitted if the SDK is not shared by multiple
// console platforms.
"CommonPlatformName": "",
// If this property is provided, specifies MSI files to
// extract as part of the SDK installation.
"Extractors": [
{
// The full path to a network share containing MSI
// files. All MSI files will be extracted.
"MsiSourceDirectory": "",
// The subdirectory underneath the UET managed SDK
// folder where these files should be extracted.
"ExtractionSubdirectoryPath": "",
}
],
// If this property is specified, specifies executable files
// that will run as part of installation.
"Installers": [
{
// The full path to an executable file to run. Can be
// on a network share, but does not have to be.
"InstallerPath": "",
// The arguments to pass to the installer.
"InstallerArguments": [
"...",
"..."
],
// An optional property; if set to true, UET will ignore
// non-zero exit codes from this executable.
"PermitNonZeroExitCode": true,
// If specified, all of the specified paths must exist
// after the installer runs (regardless of exit code) in
// order for the SDK installation to be considered successful.
"MustExistAfterInstall": [
"C:\\Some\\Path\\On\\Machine"
],
// If specified, sets the specified registry keys and
// values before this installer is run.
"BeforeInstallSetRegistryValue": {
"HKCU:\\Software\\Company\\Key": {
"Name1": 1,
"Name2": "StringValue"
},
"HKCU:\\Software\\Company\\Key2": {
"Name1": 2,
"Name2": "OtherValue"
}
},
// If specified, sets the specified registry keys and
// values after this installer has run, regardless of
// whether it ran successfully.
"AfterInstallSetRegistryValue": {
"HKCU:\\Software\\Company\\Key": {
"Name1": 1,
"Name2": "StringValue"
},
"HKCU:\\Software\\Company\\Key2": {
"Name1": 2,
"Name2": "OtherValue"
}
}
}
],
// If this property is specified, an AutoSDK-compatible
// folder will be created and the "AutoSdkFolder" keys will
// be symbolic links to the "SdkFolder" values in the UET
// managed SDK folder.
"AutoSdkRelativePathMappings": {
"AutoSdkFolder1": "SdkFolder1",
"AutoSdkFolder2": "SdkFolder2",
},
// If this property is specified, UET will create files
// with the specified contents at the specified paths
// within the AutoSDK-compatible folder so that the Unreal
// Engine build process can perform suitable initialisation.
"AutoSdkSetupScripts": [
{
// The relative path within the AutoSDK-compatible
// folder for the script to be created at.
"TargetPath": "",
// The lines (content) for the script to have.
"Lines": [
"...",
"...",
]
}
],
// If this property is specified, MSVC and the specified
// Windows SDK will be set up in the specified subdirectory
// underneath the UET managed SDK folder.
"RequiredWindowsSdk": {
// The version of the Windows SDK to install.
"WindowsSdkPreferredVersion": "",
// The version of MSVC to install.
"VisualCppMinimumVersion": "",
// The name of the subdirectory to store the installed
// Windows SDK and MSVC underneath inside the UET
// managed SDK folder.
"SubdirectoryName": ""
},
// If this property is specified, these environment variables
// will be set up for the duration of the build (or if using
// `install-sdks`, configured as user environment variables).
"EnvironmentVariables": {
"ENV_VAR_1": "ENV_VALUE_1",
"ENV_VAR_2": "ENV_VALUE_2"
}
}