Search Unity

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

Discussion in 'Windows Mixed Reality' started by ElinSoft, Mar 7, 2019.

  1. ElinSoft

    ElinSoft

    Joined:
    Dec 5, 2018
    Posts:
    3
    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.

    1. Log in to the developer.microsoft.com site, click on Dashboard.
    2. 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
    3. On the next page, click the black "Start your submission" button
    4. 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.
    5. 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.

    1. Create a 3D project in Unity 2018.2.14f1.
    2. 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.
    3. Delete the main camera that is present in the default SampleScene.
    4. 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".
    5. 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.
    6. (Optional: add a spinning cube to the scene)
    7. 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
    8. 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.
    9. 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)
    10. Build your project in Unity.
    ________



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

    1. 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).
    2. Set the build to Master || x86 || Device (but hold off on building the solution)
    3. In the solution explorer, right click on the generated appxmanifest and choose View Code from the contextual menu. In the appxmanifest code, under the <Dependencies> tag, change the Device Family from Windows.Universal to Windows.Holographic. Save this.
    4. 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.
    5. 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".
    6. 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.
    7. 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.
    8. Under submission 1, press the "Submit To Store" button
     
    anneukoe likes this.
  2. JasonCostanza

    JasonCostanza

    Unity Technologies

    Joined:
    May 23, 2017
    Posts:
    271
    Out of curiosity, have you posted to Microsoft about this as well on their forums?
     
  3. ElinSoft

    ElinSoft

    Joined:
    Dec 5, 2018
    Posts:
    3
  4. JasonCostanza

    JasonCostanza

    Unity Technologies

    Joined:
    May 23, 2017
    Posts:
    271
    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.
     
    ElinSoft likes this.
  5. ElinSoft

    ElinSoft

    Joined:
    Dec 5, 2018
    Posts:
    3
    Great, thank you! :)