Announcement

Collapse
No announcement yet.

Unreal Engine 4 is available for Win10 UWP app dev now

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    You're correct, we're not a Creators Program title. I've tried setting the publisher to the exact string that's referenced on XDP (we're not using Dev Center), but I'm still getting the same error.

    Might there be something wrong with my signing certificate? I'm using a local development one that I created just to allow me to install package builds.

    Comment


      Originally posted by Sparkash View Post
      You're correct, we're not a Creators Program title. I've tried setting the publisher to the exact string that's referenced on XDP (we're not using Dev Center), but I'm still getting the same error.

      Might there be something wrong with my signing certificate? I'm using a local development one that I created just to allow me to install package builds.
      If you're not using Dev Center then I'd recommend get in touch with your Microsoft rep for the Xbox program you belong to.

      Certificates are definitely not the issue though. You can use a self-signed certificate for a package and access Live just fine, regardless of Xbox program. Or you can use an unpackaged (and so completely unsigned) build.

      Comment


        [MENTION=494622]jsyarrow[/MENTION] - At the moment debug isn't working for me: https://github.com/MICROSOFT-XBOX-AT...EAL/issues/129

        Do you have any suggestions?

        Comment


          Originally posted by Jerry.Richards View Post
          [MENTION=494622]jsyarrow[/MENTION] - At the moment debug isn't working for me: https://github.com/MICROSOFT-XBOX-AT...EAL/issues/129

          Do you have any suggestions?
          I am currently flummoxed by this one. Somehow your exe (remember the 'real' one is in Appx/{project}/Binaries/UWP64) doesn't match the pdb. But if it's not fixed by a rebuild and redeploy then I really don't know what's going on. Will update if I have any bright ideas.

          Comment


            Originally posted by jsyarrow View Post
            I am currently flummoxed by this one. Somehow your exe (remember the 'real' one is in Appx/{project}/Binaries/UWP64) doesn't match the pdb. But if it's not fixed by a rebuild and redeploy then I really don't know what's going on. Will update if I have any bright ideas.
            This is the second time I've seen the Out of Memory error since upgrading to VS 15.2:

            Click image for larger version

Name:	OutofMemory.jpg
Views:	1
Size:	42.1 KB
ID:	1131325

            Comment


              I've followed up with those issues with on our private channel.

              When attempting to build a UWP64 package within UE, I'm getting this error -

              Code:
              UATHelper: Packaging (UWP (x64-64bit)): signtool: SignTool Error: An unexpected internal error has occurred.
              UATHelper: Packaging (UWP (x64-64bit)): CommandUtils.Run: Run: Took 219.665472s to run signtool.exe, ExitCode=1
              UATHelper: Packaging (UWP (x64-64bit)): Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:1): C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe sign /a /f "D:\MyGame_416_uwp_merge\ueproject\Build\UWP\MyGame_temp_cert.pfx" /fd SHA256 "D:\MyGame_416_uwp_merge\uepr
              oject\Saved\StagedBuilds\UWP64\MyGame.appx". See logfile for details: 'signtool-2017.07.20-17.48.26.txt'
              Seems my certificate is failing now. I've checked the certificate, and it's issued to 'No Publisher'. My uwp appxmanifest has Publisher="CN=No Publisher" set in the identity tag. What other information might it be failing on?

              This was working previously with 4.15.

              Comment


                Originally posted by Sparkash View Post
                Seems my certificate is failing now. I've checked the certificate, and it's issued to 'No Publisher'. My uwp appxmanifest has Publisher="CN=No Publisher" set in the identity tag. What other information might it be failing on?
                The logfile mentioned should be in Engine\Programs\AutomationTool\Saved\Logs. What does it say? In particular is there an error code from signtool? Common cases are here.

                Also, not sure what commit you're on, but a fairly recent one added a button in the project settings UI that will generate a certificate for you. You might see if using that makes any difference.

                Comment


                  Originally posted by jsyarrow View Post
                  The logfile mentioned should be in Engine\Programs\AutomationTool\Saved\Logs. What does it say? In particular is there an error code from signtool? Common cases are here.

                  Also, not sure what commit you're on, but a fairly recent one added a button in the project settings UI that will generate a certificate for you. You might see if using that makes any difference.
                  Sorry, had read the details of the text file and saw that it implied that my 'publisher' field was incorrect. To clarify the contents are :

                  Code:
                  Done Adding Additional Store
                  Error information: "Error: SignerSign() failed." (-2147024885/0x8007000b)
                  SignTool Error: An unexpected internal error has occurred.
                  Thanks for the common cases link - I can see that the publisher didn't match (I was missing the 'O=' section). Editing that to match will hopefully sort it.

                  Regarding the automatic certificate generation - I'm on the latest commit, but I don't see the option in the project settings UI. Any reason it wouldn't be available to me?
                  Last edited by Sparkash; 07-21-2017, 12:51 PM.

                  Comment


                    Ah, I see you're way ahead of me. Publisher mismatch is indeed the normal reason for that error. Have you tried manually running SignTool with the debug option?

                    Code:
                    C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe sign debug /a /f "D:\MyGame_416_uwp_merge\ueproject\Build\UWP\MyGame_temp_cert.pfx" /fd SHA256 "D:\MyGame_416_uwp_merge\ueproject\Saved\StagedBuilds\UWP64\MyGame.appx
                    As for the generate button, it should be on the UWP page of project settings, in the packaging section, and look something like

                    Click image for larger version

Name:	GenerateCertificateButton.PNG
Views:	1
Size:	7.0 KB
ID:	1131371

                    Can't think of any reason why it wouldn't be there for you - it's unconditionally added to the layout. I did realize while grabbing that for you that it's a little fussy right now - you need to delete the existing .cer, .pvk and .pfx before it will work, and if you change publisher/identity/name you may need to close and reopen the settings window before trying to generate.

                    One last thing - I see you've changed the file name of the certificate in use (not Build/UWP/SigningCertificate.pfx). That 'feature' didn't seem particularly useful, and wasn't ever exposed through editor UI, so it's gone in the latest and we just always use the default location. Don't think that's related to your current error since the command line to signtool indicates your custom location is in use, but it might become relevant as you try to make changes to pinpoint the problem.

                    Comment


                      Originally posted by jsyarrow View Post
                      As for the generate button, it should be on the UWP page of project settings, in the packaging section, and look something like

                      [ATTACH=CONFIG]149222[/ATTACH]
                      [MENTION=828801]Sparkash[/MENTION] - adding to what [MENTION=494622]jsyarrow[/MENTION] wrote, the UWP Page is accessed by scrolling the side menu on the Project Settings page:

                      Click image for larger version

Name:	UWP.Access.jpg
Views:	1
Size:	142.3 KB
ID:	1131372


                      And an example of my settings for a test project I have:

                      Click image for larger version

Name:	UWP.Page.jpg
Views:	1
Size:	103.3 KB
ID:	1131373

                      Comment


                        [MENTION=494622]jsyarrow[/MENTION] - Debugging is working again (Debug UWP64), and now I would like to add the XSAPI projects to the solution, have the built DLL's and PDB copied into the appropriate directory. Is there a clean way of doing this?

                        https://github.com/Microsoft/xbox-li...nrt-uwp-source

                        Can I add the projects to my solution:
                        Code:
                        \Build\Microsoft.Xbox.Services.140.UWP.WinRT\Microsoft.Xbox.Services.140.UWP.WinRT.vcxproj
                        \External\cpprestsdk\Release\src\build\vs14.uwp\cpprestsdk140.uwp.vcxproj
                        Change the Output to be the original directory:
                        Code:
                        E:\UEUWP\MICROSOFT_UWP_UNREAL\Engine\Plugins\Online\XboxOne\OnlineSubsystemLive\ThirdParty\XSAPI\UWP.2017.07.20170710.01\lib\x64\v140\Release
                        Will this approach honor breakpoints? Given that the files (DLL, PDB) are copied to a different directory that may cause some confusion.

                        Comment


                          [MENTION=5350]Jerry.Richards[/MENTION] - I would expect that to work. You may need to manually point the debugger at the pdb file as a one-off, but after that you shouldn't have any trouble with breakpoints.

                          Comment


                            When I try to add a reference to the DLL projects, VS complains that different platforms are being targeted:

                            Click image for larger version

Name:	DifferentPlatforms.jpg
Views:	1
Size:	20.6 KB
ID:	1131379


                            But each platform is targeting x64:

                            Click image for larger version

Name:	restplatform.jpg
Views:	1
Size:	38.0 KB
ID:	1131380

                            Click image for larger version

Name:	xsapi.platform.jpg
Views:	1
Size:	64.5 KB
ID:	1131381

                            This may be trivial, and I'm trying to resolve it now, but as usual, any help/guidance you can provide is appreciated.

                            Comment


                              Using the Xbox Live Samples (https://github.com/Microsoft/xbox-live-samples), specifically the Leaderboard Sample, I am able to see the Stats manager working. I can write to and read from my game and sandbox:

                              Click image for larger version

Name:	LeaderboardSet.02.jpg
Views:	1
Size:	123.0 KB
ID:	1131450

                              Click image for larger version

Name:	LeaderboardScores.02.jpg
Views:	1
Size:	58.0 KB
ID:	1131451


                              The code being used within the UEUWP is very similar to that being used in the samples. However, there is a significant difference in the API usage, function names:

                              Samples
                              Code:
                              void Sample::SetStatForUser(
                                  _In_ std::shared_ptr<xbox::services::system::xbox_live_user> user,
                                  _In_ const string_t& statName,
                                  _In_ int64_t statValue)
                              {
                                  m_statsManager->set_stat_as_integer(user, statName, statValue);
                              
                                  // Typically stats will be uploaded automatically
                                  // you should only request to flush when a game session or level ends.
                                  m_statsManager->request_flush_to_service(user, false);
                              
                                  stringstream_t source;
                                  source << _T("Setting ");
                                  source << statName;
                                  source << _T(" to ");
                                  source << statValue;
                                  m_console->WriteLine(source.str().c_str());
                              }

                              And the code from UEUWP:
                              Code:
                              bool FOnlineLeaderboardsLive::WriteLeaderboards(const FName& SessionName, const FUniqueNetId& PlayerId, FOnlineLeaderboardWrite& WriteObject)
                              {
                                  UNREFERENCED_PARAMETER(SessionName);
                              
                                  if (!LiveSubsystem)
                                      return false;
                              
                                  const FOnlineIdentityLivePtr Identity = LiveSubsystem->GetIdentityLive();
                                  if (!Identity.IsValid())
                                      return false;
                              
                                  const FUniqueNetIdLive UserLive(PlayerId);
                                  Windows::Xbox::System::User^ XBoxUser = Identity->GetUserForUniqueNetId(UserLive);
                              
                                  Microsoft::Xbox::Services::XboxLiveContext^ LiveContext = LiveSubsystem->GetLiveContext(XBoxUser);
                                  if (LiveContext == nullptr)
                                      return false;
                              
                                  Microsoft::Xbox::Services::Statistics::Manager::StatisticManager^ mgr = Microsoft::Xbox::Services::Statistics::Manager::StatisticManager::SingletonInstance;
                                  if (mgr != nullptr)
                                  {
                                      for (FStatPropertyArray::TConstIterator item(WriteObject.Properties); item; ++item)
                                      {
                                          Platform::String^ itemName = ref new Platform::String(*item->Key.GetPlainNameString());
                              
                                          int32 itemValue;
                                          item->Value.GetValue(itemValue);
                              
                                          long long llValue;
                                          llValue = itemValue;
                              
                                          mgr->SetStatisticIntegerData(LiveContext->User, itemName, llValue);
                                      }
                              
                                      mgr->RequestFlushToService(LiveContext->User);
                              
                                      return true;
                                  }
                              
                                  return false;
                              }

                              Clearly the signatures are different, and I agree that the two sets of DLL's should be performing the same task. But it is possible something else is happening.
                              Last edited by Jerry.Richards; 07-23-2017, 09:00 PM.

                              Comment


                                Originally posted by jsyarrow View Post
                                Ah, I see you're way ahead of me. Publisher mismatch is indeed the normal reason for that error. Have you tried manually running SignTool with the debug option?

                                Code:
                                C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe sign debug /a /f "D:\MyGame_416_uwp_merge\ueproject\Build\UWP\MyGame_temp_cert.pfx" /fd SHA256 "D:\MyGame_416_uwp_merge\ueproject\Saved\StagedBuilds\UWP64\MyGame.appx
                                As for the generate button, it should be on the UWP page of project settings, in the packaging section, and look something like

                                [ATTACH=CONFIG]149222[/ATTACH]

                                Can't think of any reason why it wouldn't be there for you - it's unconditionally added to the layout. I did realize while grabbing that for you that it's a little fussy right now - you need to delete the existing .cer, .pvk and .pfx before it will work, and if you change publisher/identity/name you may need to close and reopen the settings window before trying to generate.

                                One last thing - I see you've changed the file name of the certificate in use (not Build/UWP/SigningCertificate.pfx). That 'feature' didn't seem particularly useful, and wasn't ever exposed through editor UI, so it's gone in the latest and we just always use the default location. Don't think that's related to your current error since the command line to signtool indicates your custom location is in use, but it might become relevant as you try to make changes to pinpoint the problem.
                                Thanks for the image. My package settings are slightly different however. I've double checked and I'm definitely on the latest Github revision. Could my settings be stale for some reason?

                                Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	24.6 KB
ID:	1131464

                                Comment

                                Working...
                                X