Unable to download HoloLens app from Microsoft Store. Possible Unity version connection?

After building a HoloLens application with Unity 2018.2.14f1, it's not possible to download the application from the store, while it passes all store testing and certifications.

We observed that when the StoreManifest.xml file is present in the Visual Studio solution after building from Unity, there is a problem with publishing through the Microsoft Store. When we delete it from the solution, publishing and downloading does work.

Reproduce bug for Unity forum

First the store listing/entry needs to be configured. We will use this configuration for the Unity build in later steps.

  • Log in to the developer.microsoft.com site, click on Dashboard.
  • Create a new app listing by clicking the black button saying "Create a new app" at the top, give the app a name, select "Do not create this product in a sandbox", click the black "Reserve app name" button
  • On the next page, click the black "Start your submission" button
  • In the app overview menu to the left of the page, under App management > App Identity, you will find:

  • Copy the value of Package/Properties/PublisherDisplayName into the Unity editor under Player Settings at the top as the "Company Name".

  • A field called "Package/Identity/Name". The value of this field should be filled in in the Unity editor under Player Settings > Publishing Settings (with the build platform switched to UWP in the Build Settings) > Packaging > Package Name.

  • In the app overview menu to the left of the page, under App management > Manage app names > Name for this product, you will find:

  • The name used for reservation of the app listing in the store. This name should be filled in in the Unity editor under Product Name at the top of the PlayerSettings.

    • Fill in the required fields of the app entry.
  • Start out here by choosing a language under the "Store listings" section. Click on "Add/remove languages". On the next page, click on "Manage additional languages". Search for and select "English (United States)". Click "Update"at the bottom of the page. Click the black "Save" button. You will be taken back to the "Submission 1" view. Click the English (United States) that now shows up in the "Store listings" section. Add some text under description (required). Beneath that, under "Screenshots (at least one required)", first click on the Holographic tab and add a screenshot of the right format there. Go to the bottom of the page and press "Save".

  • "Pricing and availability" -> You can just keep the default settings, just scroll down and click the "Save" button at the bottom of the page.

  • "Properties" -> At the top of the page, pick a category and a subcategory. Fill in a valid URL under "Privacy policy URL" (you can try publishing without one but you might be prompted that you have to add one). Under "Display Mode", click HoloLens. Scroll to the bottom of the page and press "Save".

  • "Age Ratings" -> Under "Add Type", choose one of the options. Answer no to all questions, click "Save and generate" at the bottom of the page. On the next page, click ""Continue" at the bottom.

  • The "Packages" section is where we will add the appxupload package after we build it in Visual Studio.

  • The "Submission options" section doesn't need to be changed

After the entry on the Microsoft Store Dashboard is set up, open Unity 2018.2.14f1.

  • Create a 3D project in Unity 2018.2.14f1.
  • Grab the unitypackage of the MRTK 2017.4.2.0 (at the bottom of this page: https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/tag/2017.4.2.0) and import it into the unity project.
  • Delete the main camera that is present in the default SampleScene.
  • Set up the project for Mixed Reality: Click the "Mixed Reality Toolkit" dropdown at the top > "Configure" > "Apply Mixed Reality Project Settings". In the popup, deselect the "Set Default Spatial Mapping Layer" option and click "Apply".
  • Set up the SampleScene for Mixed Reality: Click the "Mixed Reality Toolkit" dropdown at the top > "Configure" > "Apply Mixed Reality Scene Settings". Keep the default settings and click "Apply". Save the SampleScene.
  • (Optional: add a spinning cube to the scene)
  • Add a custom Splash Image in Unity's Player Settings > Splash Image > under Windows > Scale 200% (1240x600 pixels): Microsoft Store doesn't accept a default splash image
  • Open Unity's Build Settings window and make sure the platform is switched to Universal Windows Platform. Select HoloLens as Target Device. If not added yet, add the opened SampleScene to the build.
  • Set the values generated by the store listing in the Unity editor Player Settings before building the Visual Studio solution (See step 4 + 5 of the store listing configuration described above)
  • Build your project in Unity.

Navigate to the build folder. In its root open the generated .sln file.

  • Important: In the solution explorer, delete the HolographicStreamerDesktop.dll and the HolographicStreamerDesktop.pdb files (your package will be rejected by the Microsoft Store if you keep them in).
  • Set the build to Master || x86 || Device (but hold off on building the solution)
  • In the solution explorer, right click on the generated appxmanifest and choose View Code from the contextual menu. In the appxmanifest code, under the tag, change the Device Family from Windows.Universal to Windows.Holographic. Save this.
  • Next, open the appxmanifest editor by double clicking on it in the solution explorer. Go to the Packaging tab and add a valid certificate under Publisher (See https://docs.microsoft.com/en-us/windows/uwp/packaging/create-certificate-package-signing). Save the solution.
  • Now right click on the project in the Solution Explorer, choose Store from the contextual menu, and choose "Create App Packages…" > Select "I want to create packages for sideloading" > Click "Next".
  • In the next menu, under "Select the packages to create and the solution configuration mappings" unclick the builds for x64 and ARM. Click the "Create" button.
  • Navigate to the AppPackages folder, shift-select both the .appxbundle and the .appxsym files, zip them up. Change the .zip extension to .appxupload. This is the package file that you upload to the store in the "Packages" section.
  • Under submission 1, press the "Submit To Store" button
1 Like

Out of curiosity, have you posted to Microsoft about this as well on their forums?

Yes, I posted this on the HoloLens forum as well: https://forums.hololens.com/discuss…tore-possible-unity-version-connection#latest

Excellent! I will try to get this checked out soon. I don't personally have access to a test server or account to upload store apps to test your issue. I will add this to my to-do list to investigate hopefully with Microsoft's help but I have to warn you the response may be a little slow on this because we can't handle this internally that I know of. I will do some digging, maybe there's something I don't know :) Always possible.

1 Like

Great, thank you! :)

@ElinSoft Thanks for your patience on this. I haven't forgotten and I'm still tracking down help for you on this issue


@JasonCostanza , this was a particularly aggrivating issue for me to resolve over this past week. It would be great if you can escalate it so others who are bound to hit it won't have my recent experience. BTW: Thanks @ElinSoft !

@ElinSoft I managed to get in touch with Microsoft on this finally and they mentioned they have commented on your thread on their forums. I hope they can get you a solution, if it turns out to be something on our end reach out again to us and we'll continue digging.

@JasonCostanza We also ran into this issue. Although there are bugs in the Microsoft Store and App deployment. i.e. WACK should fail store cert should fail etc. I have filed bugs with MS about their issues. The question is why is Unity creating this file? If you create a Hololens App using VisualStudio it does not create this file and according to MS it is optional. We are on Unity 2018.3 currently and in the Unity 2017 this file was not created. We solved our issue by removing the D3D entry that Unity created.

The reason it is created is so that Unity apps wouldn’t be downloadable on devices with DirectX 9 class GPUs, like really old PCs or most of Windows Phones. If Unity apps did get downloaded to those devices, they’d render using CPU at like 1 frame per second…

We added that file in Unity 2018.2 because we dropped support for DirectX 11 Feature Level 9.3 rendering. It’s basically a way to declare system hardware requirements for the app. See this:


Yes that makes sense and I agree it should work. We will see if MS fixes anything. It was very difficult to figure out since the Hololens was not launching its warning about system requirements. There were new updates today so I wonder if any of those issues were fixed.

@ElinSoft a massive thankyou for posting this issue. Just came across it and I would've had a very hard time finding it myself! If there's a bug report or similar I can vote on please let me know.