How to opt out of low memory devices on Windows Phone 8.1 and Windows 10

UPDATE for UWP apps:

StoreManifest schema got updated in Windows 10.
https://msdn.microsoft.com/en-us/library/windows/apps/mt617335.aspx

New method for opting out of certain devices is like this:

where MemoryDependency is
300MB = device must have at least 1 GB of installed memory
750MB = device must have at least 2 GB of installed memory
1000MB = device must have at least 3 GB of installed memory
2000MB = device must have at least 4 GB of installed memory
https://msdn.microsoft.com/en-us/library/windows/apps/mt617330.aspx

If you test your app and determine that it is not suitable to run on low memory (512MB) Windows Phone devices or want to have some additional time optimizing for these devices, you can choose to opt out of them.

This means that users users can not find your app in the Windows Phone Store unless they are given a direct link, and even so they cannot download the app. This helps users avoid poor user experience and developers to avoid poor reviews.

For Windows Phone 8, all you need to do is add the following to WMAppManifest.xml file:

As detailed here: https://msdn.microsoft.com/en-us/library/windows/apps/hh855081(v=vs.105).aspx

For Windows Phone 8.1, it gets a little trickier since there is no WMAppManifest.xml file anymore, and there isn’t any documentation that shows how to do this. There is a //build session that says you need to add

1GB

to Appxmanifest.xml, however, this does NOT work.

To properly opt out of low memory devices in WP8.1, you need to create a file called storemanifest.xml inside the app in Visual Studio, and add this code there:

  • Here is a sample app that contains the StoreManifest.xml file.

This file is only interpreted by the Store, so you won’t see any immediate changes. To confirm this requirement was added, when you are submitting the package to the Store, you will see that the IDREQMEMORY_300 is added in capabilities section.

LowMem-StoreSubmission

Since this capability needed only when your app is in the Store, you can test this by adding a beta app. When you go to the store listing, you’ll see the following message stating that you need to have a device with 1GB+ memory to download.

LowMem-Store   LowMem-Store2

If you want to remove this restriction after publishing your app, you can remove the storemanifest.xml file and create and submit a new package to the Store. This will make it available for all compatible devices.