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: Release HoloToolkit 2017.4.2.0 · microsoft/MixedRealityToolkit-Unity · GitHub) 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 Create a certificate for package signing - MSIX | Microsoft Learn). 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