Turnkey
Turnkey
Turnkey 是 UE 自带的平台 SDK 管理工具,把各平台 SDK 的安装和管理自动化了。配好之后,团队成员不用手动到处找 SDK 安装包,Turnkey 会按 Manifest 描述去指定存储位置拉对应版本装上。
在编辑器里用 Turnkey 装 SDK
编辑器顶部 Platforms 菜单下能找到 Turnkey 的入口,选目标平台 → Install SDK,它会按 Manifest 配置自动下载安装。
命令行用法
RunUAT.bat turnkey -command=InstallSdk -platform=PS5 -BestAvailable -NeededOnly -Unattended
RunUAT.bat turnkey -command=InstallSdk -platform=XSX -BestAvailable -NeededOnly -Unattended
常用参数:
| 参数 | 说明 |
|---|---|
-Platform= | 指定平台,用平台选择提示里的名字(例如 -Platform=Win64 有效,-Platform=Windows 无效)。-Platform=All 会遍历所有可用平台 |
-NeededOnly | 让 Turnkey 查找 AutoSDK 类型 |
-BestAvailable | 让 Turnkey 查找 Full SDK 类型;和 -NeededOnly 一起用时,Full SDK 或 AutoSDK 都会找 |
-UpdateOnly | 只更新已安装的 SDK,不做完整安装 |
SDK 的 Type 有三种:
| Type | 说明 |
|---|---|
| Full | 完整 SDK 安装,等同开发者本地手动装的那套 |
| AutoSDK | 一个让 UE 按需配置 SDK 的包。两者都存在时 Turnkey 优先用 AutoSDK |
| Flash | 最小安装,只含刷开发机(dev kit)需要的组件 |
配置 Turnkey
SDK 存储位置支持三种:
- P4
- 本地路径或共享路径
- Google Drive 上的共享盘
配置的核心是 Turnkey Manifest 文件,它决定每个平台有哪些 SDK 可用。
基础 Manifest
Engine/Build/Turnkey/TurnkeyManifest.xml 是基础 Manifest,它本身不需要改,它的作用是引用各平台 SDK 文件旁边的子 Manifest。
各平台 Manifest
各平台的 Manifest 在 $(EngineDir)/Platforms/*/Build/Turnkey/TurnkeyManifest.xml。
PS5,P4 存储的 AutoSDK 例子(<workspace>\Engine\Platforms\PS5\Build\Turnkey\TurnkeyManifest.xml):
<?xml version="1.0" encoding="utf-8" ?>
<TurnkeyManifest>
<FileSource>
<Platform>PS5</Platform>
<Type>AutoSdk</Type>
<Version>$(ExpVersion)</Version> <!-- 版本号见 <workspace>\Engine\Platforms\${platform}\Source\Programs\UnrealBuildTool\${platform}PlatformSDK.Versions.cs -->
<Name>PS5 AutoSDK Install v$(ExpVersion)</Name>
<Source HostPlatform="Win64" CopyOverride="perforce://depot/autosdk/HostWin64/PS5/$(ExpVersion)/...">fileexpansion:perforce://depot/autosdk/HostWin64/PS5/$[ExpVersion]/setup.bat</Source>
</FileSource>
</TurnkeyManifest>
XSX / WinGDK / XboxOneGDK / XB1,可以在一个 Manifest 里同时声明 AutoSDK 和 Full 两种来源(<workspace>\Engine\Platforms\GDK\Build\Turnkey\TurnkeyManifest.xml):
<?xml version="1.0" encoding="utf-8" ?>
<TurnkeyManifest>
<FileSource>
<Platform>XSX,WinGDK,XboxOneGDK,XB1</Platform>
<Version>$(ExpVersion)</Version>
<Name>GDK $(ExpVersion)</Name>
<Type>AutoSdk</Type>
<Source CopyOverride="perforce://depot/autosdk/HostWin64/GDK/$(ExpVersion)/...">fileexpansion:perforce://depot/autosdk/HostWin64/GDK/$[ExpVersion]/setup.bat</Source>
</FileSource>
<FileSource>
<Platform>XSX,WinGDK,XboxOneGDK,XB1</Platform>
<Version>$(ExpVersion)</Version>
<Name>GDK Full $(ExpVersion)</Name>
<Type>Full</Type>
<Source>fileexpansion:file:\\<file-server>\SDKInstaller\GDK\$[ExpVersion]</Source>
</FileSource>
</TurnkeyManifest>
<Source> 里既可以指向 P4 的 autosdk 路径(perforce://...),也可以指向共享盘上的安装包(file:\\...),按团队的存储方案选。$(ExpVersion) 会展开成实际版本号,来源就是上面注释里那个 *PlatformSDK.Versions.cs。
配好后,命令行装一个平台就一句:
RunUAT.bat turnkey -command=InstallSdk -platform=XSX