Unreal Engine 4 is available for Win10 UWP app dev now

I got Visual Studio setup for building/debugging the game I had to set it up first, but despite the debug build it didn’t work its the same thing.

Also I’m a bit confused with this two you listed can you explain a little bit more in depth how to do this please?:

  • do a one-time manual copy of content from Saved/Cooked/UWPxx/ to Binaries/UWPxx/AppX. This won’t help if you’re iterating on content, but will give you the fastest iteration times for deploy and launch if you’re working on C++ code.

The DLL’s looked like the 20170107 folder. Sometimes running the script doesn’t work.

Anyway, I completely deleted my UEUWP folder, re-downloaded the source from GitHub, changed the xsapiVersionUWP in the GetXboxLiveSDK.ps1 script. Now I’m rebuilding.

Assuming ThirdParty contains the 20170517 folder, I will delete all previous build information from my game folder, and rebuild with the changes. Hopefully that will work.

As for the triple checking, I’ve gone significantly past that, at least I think I have. Of course, maybe I’m looking at the wrong items.

I don’t think the build worked correctly? Am I supposed to run the GetXboxLiveSDK script manually?

When I run the script manually I am getting an error:

Would this be the correct statement then:



$xsapiVersionUwp = "2017.05.20170517.001"


Doing so I encountered no errors.

Yes, looks like the formatting of the version on the actual downloaded package changed slightly. Thanks for working through this. With that change you should now be building against the latest SDK. Let us know if that changes anything at runtime.

Unfortunately my build failed:



UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Binaries\UWP64\LongshotHero-OnlineSubsystemLive-UWP64-Shipping.lib
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: Total build time: 436.15 seconds (Local executor: 0.00 seconds)
UATHelper: Packaging (UWP (x64-64bit)): CommandUtils.Run: Run: Took 436.3326064s to run UnrealBuildTool.exe, ExitCode=5
UATHelper: Packaging (UWP (x64-64bit)): Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Binaries\DotNET\UnrealBuildTool.exe LongshotHero UWP64 Shipping -Project=E:\LongshotHero\UWPSource\LongshotHero.uproject  E:\LongshotHero\UWP
Source\LongshotHero.uproject  -remoteini="E:\LongshotHero\UWPSource" -noxge -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2017.06.12-17.47.55.txt' 
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.CommandUtils.RunAndLog(String App, String CommandLine, String Logfile, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars, SpewFilterCallbackType SpewFilterCallback) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\ProcessUtils.cs:lin
e 907
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.CommandUtils.RunAndLog(CommandEnvironment Env, String App, String CommandLine, String LogName, Int32 MaxSuccessCode, String Input, ERunOptions Options, Dictionary`2 EnvVars, SpewFilterCallbackType SpewFilterCallback) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationU
tils\ProcessUtils.cs:line 860
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, String CommandLine, String LogName, Dictionary`2 EnvVars) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\UBTUtils.cs:line 51
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, String UBTExecutable, FileReference Project, String Target, String Platform, String Config, String AdditionalArgs, String LogName, Dictionary`2 EnvVars) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\UBTUtils.cs:lin
e 89
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.UE4Build.BuildWithUBT(String TargetName, UnrealTargetPlatform TargetPlatform, String Config, FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, String InAddArgs, Boolean ForceUnity, Dictionary`2 EnvVars) in 
E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 368
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.UE4Build.Build(BuildAgenda Agenda, Nullable`1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, Dictionary`2 PlatformEnvVars, Nullable`1 InChangelistNumberOverride, Diction
ary`2 InTargetToManifest) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\UE4Build.cs:line 1502
UATHelper: Packaging (UWP (x64-64bit)):    at Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\Scripts\BuildProjectCommand.Automation.cs:line 185
UATHelper: Packaging (UWP (x64-64bit)):    at BuildCookRun.DoBuildCookRun(ProjectParams Params) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 210
UATHelper: Packaging (UWP (x64-64bit)):    at BuildCookRun.ExecuteBuild() in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 43
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.BuildCommand.Execute() in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 100
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 561
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.Automation.Process(String] Arguments) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 531
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.Program.MainProc(Object Param) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\Program.cs:line 135
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.InternalUtils.RunSingleInstance(Func`2 Main, Object Param) in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\AutomationUtils\Utils.cs:line 704
UATHelper: Packaging (UWP (x64-64bit)):    at AutomationTool.Program.Main() in E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Source\Programs\AutomationTool\Program.cs:line 59
UATHelper: Packaging (UWP (x64-64bit)): Program.Main: AutomationTool exiting with ExitCode=5 (5)
UATHelper: Packaging (UWP (x64-64bit)): BUILD FAILED
PackagingResults:Error: Error Unknown Error


Looking back through the build log, I do see some Xbox related errors:



UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C2039: 'Xbox': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C2039: 'Services': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C2039: 'System': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C3083: 'Xbox': the symbol to the left of a '::' must be a type
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C3083: 'Services': the symbol to the left of a '::' must be a type
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C3083: 'System': the symbol to the left of a '::' must be a type
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C2039: 'GetTokenAndSignatureResult': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(28): error C2061: syntax error: identifier 'GetTokenAndSignatureResult'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C2039: 'Xbox': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C2039: 'Services': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C3083: 'Xbox': the symbol to the left of a '::' must be a type
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C3083: 'Services': the symbol to the left of a '::' must be a type
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C2039: 'XboxLiveContext': is not a member of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt\wrl\event.h(1195): note: see declaration of 'Microsoft'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C2143: syntax error: missing ';' before '^'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(172): error C2238: unexpected token(s) preceding ';'
UATHelper: Packaging (UWP (x64-64bit)): UnrealBuildTool: E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\Source\Public\OnlineSubsystemLive.h(173): error C2039: 'Xbox': is not a member of 'Microsoft'


There were more of them.

Does GetXboxLiveSDK.ps1 need to be performed before the build?

Yes, it needs to be run manually at the moment.

Yes, before the build. Correct?

Because it wasn’t done in that order.

Sorry, misunderstood. Also yes, before the build :). OnlineSubsystemLive has compile-time dependencies on the SDK content (via its WinMD). Dependencies that look very like the things your build output is complaining about :).

Unfortunately I’m getting the same errors as above. The steps I took are as follows:

  1. I deleted (again) my UEUWP source.

  2. Downloaded the source from GitHub

  3. Changed the xsapiVersionUWP in GetXboxLiveSDK script

  4. Executed GetXBoxLiveSDK

  5. Setup.bat

  6. GenerateProjectFiles.bat

  7. Built in Visual Studio

  8. Deleted all build data from game folder

  9. Opened game project using UEUWP

  10. Set Project Settings - Description, and UWP

  11. Packaged project for UWP64

Above errors encountered again.

@

I installed Windows10 SDK 10586…
(I can see this SDK on the control panel and this is the only SDK I can see)
My Visual Studio version is 2015 Update 1
My commit is 713f1c0

But I met the same problem as @(#303)



2>------ Build started: Project: UE4, Configuration: Development_Editor x64 ------
2>  Performing 7 actions (4 in parallel)
2>  Module.D3D12RHI.cpp
2>  OculusRiftRenderD3D12.cpp
2>g:\MICROSOFT_UWP_UNREAL-release_uwp\Engine\Source\ThirdParty\Windows\DX12\include\d3dx12.h(1151): error C2504: 'D3D12_DESCRIPTOR_RANGE1': base class undefined
2>g:\MICROSOFT_UWP_UNREAL-release_uwp\Engine\Source\ThirdParty\Windows\DX12\include\d3dx12.h(1153): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2>g:\MICROSOFT_UWP_UNREAL-release_uwp\Engine\Source\ThirdParty\Windows\DX12\include\d3dx12.h(1153): error C2143: syntax error: missing ',' before '&'
2>g:\MICROSOFT_UWP_UNREAL-release_uwp\Engine\Source\ThirdParty\Windows\DX12\include\d3dx12.h(1156): error C2061: syntax error: identifier 'D3D12_DESCRIPTOR_RANGE_FLAGS'


What should I do to build it?
And if I get a new PC with VS2017 and the newest SDK(15063),would I be able to build it?

  • elaborating on my cook comments: if you ran a cook for UWP it should have generated the cooked content in a folder named something like Saved/Cooked/UWP64 under your project’s (not the Engine) folder. If you were running a regular Windows desktop build in a Development configuration it would be able to read directly from that path, but UWP apps have restrictions on the folders they can access without explicit user permission. So you need to move the content into a location that the UWP app can access - which means somewhere inside the application package. When running from Visual Studio a virtual application package is laid out rooted in the folder Binaries/UWP64/AppX. For a C++ project this is relative to your project path; for a blueprint project this is relative to the engine folder. So if you copy from the cooked directory to that location then your content will be accessible. Does that help?
    @anonymous_user_1267f45c - I’m running low on ideas. Did you republish your configuration just in case (kind of the equivalent of turning-it-off-then-on-again, but you never know)?
    @Wxzuir - you should be able to stick with VS2015, but you might need to install the 14393 SDK. Looks like the D3D12 RHI has some dependencies on newer headers, and for UWP we’re pulling those headers from the Windows SDK (rather than the ThirdParty folder - makes it easier to maintain WACK compliance).

Yes, I’ve done it numerous times. I’ve checked and rechecked the five steps, and after pressing Test the portal reports success:

Also, I cannot package with the latest XSAPI SDK. Should I revert back then?

If so, can I just reset the version, run the script, and “Build” the engine/editor?

Btw, it appears that the Title ID is the last twelve hex characters of the SCID.

@ - can you confirm the following on the Project Description page:

  • Project ID: stays (GUID) as provided by UE4?
  • Project Name: as displayed on Dev Center Portal
  • Company Name: <yourName>
  • Company Distinguished Name: CN=<yourName>

There was a good amount of discussion regarding the above but I can’t remember right off the top of my head. So I’ll need to go back through my notes, and this thread.

Can you confirm the UWP Settings:

  • Service Config Id: as provided by the Dev Center portal
  • Title Id: the decimal Title Id converted to hex, leading zeros unnecessary
  • Is Creators Program Title: checked
  • Logo’s set

After looking over my Project Settings (again), I noticed that the Company Distinguished Name was set to possibly a localized version. Additionally, after wiping the project clean, I inadvertently used RvBGames instead of the Store version, which has a numeric value prepended to it: <99999>RvBGames.

I reverted back to the previous version of the XSAPI (20170107), and now I’m repacking again using UWP64. Hopefully this will work.

Can the XSAPI calls work under the Debug build? They don’t work within the Editor.

No I don’t think this will work if you mean like to directly copy and paste the GlobalShaderCache to that location it wont work I even tried this but the UWP just removes it when it gets launched.

The GlobalShaderCache exists but it gets stored in another location and not on the one that its looking for, no clue whats happening here.