To upload your app for review to be added to the Meta Horizon Store, it must have an app manifest (AndroidManifest.xml) that conforms to the specifications described in this topic. Apps whose manifests do not conform will fail the Virtual Reality Checks (VRC) VRC.Quest.Packaging.1 and/or VRC.Quest.Packaging.4.
Note that builds that whose manifests do not conform to these specifications may potentially still be uploaded to the Developer Dashboard, or sideloaded and launched on a Meta Quest Device.
SdkVersion values correspond to Android OS versions. All Horizon OS releases since HzOS version 76 on April 2025 have used Android 14 (SdkVersion 34). Previous Horizon OS versions used Android 12 (SdkVersion 32). As such, the recommended targetSdkVersion is 34.
A lower minSdkVersion indicates support for users on older versions of Android. Since many versions of Horizon OS have the same Android OS version, developers who wish to restrict usage to new versions of HzOS (i.e. to support new mixed reality features) should examine Requiring Minimum OS Versions.
compileSdkVersion is optional in your app manifest; however, if listed, it must be greater than or equal to the android:targetSdkVersion. Having a higher compileSdkVersion than targetSdkVersion ensures you receive up-to-date compiler error messages.
Although maxSdkVersion is supported by Android, it is not recommended for Meta Quest devices.
installLocation must be set to auto (or 0, which is the same). This accommodates installing apps on SD card external storage. If you have a special circumstance and require a different install location setting, contact the store team using the Get Developer Support form.
In the manifest node, declare the android.hardware.vr.headtracking feature according to your app class:
Immersive (VR) apps require 6DoF head tracking hardware, so the following line must appear:
Panel (2D) apps do not require 6DoF hardware. Either omit this element, or set android:required="false" to indicate that the app can run in both 3DoF and 6DoF modes:
In the application node, android:label must contain the name of the app or a reasonable representation of the app name, and the label must be unique on the platform.
In the application node, android:debuggable must be set to false, or unset. Your app must be a release version, not a debug version.
In the activity node which launches your app, specify the following intent-filter values:
In the activity node which launches your app, android:excludeFromRecents must be set to true.
In the application node, add a com.oculus.supportedDevices meta-data element that specifies the Meta Quest devices your app supports. Use the canonical metadata below.
Supported Meta Quest devices
The canonical com.oculus.supportedDevices identifiers are:
Meta Quest device
supportedDevices identifier
Meta Quest 2
quest2
Meta Quest Pro
questpro
Meta Quest 3
quest3
Meta Quest 3S
quest3s
Separate multiple identifiers with a pipe (|).
To declare support for all current Meta Quest devices, add this element to the application node in AndroidManifest.xml:
Unity and Unreal Engine add this element automatically when you configure the target devices in the project settings. For more information, see Compatibility mode.
Unity app manifests
The Unity Android project settings allow you to set some of the required application manifest options for building a mobile app suitable for the Store. To set the remaining manifest settings, use the features provided by the Meta XR Core SDK for Unity, or edit the manifest directly.
To configure Unity to build Meta Quest Android .apk packages
Open the Unity Editor.
Go to Meta > Tools > Create store-compatible AndroidManifest.xml.
Go to Edit > Project Settings > Player.
Expand the Other Settings properties, and select the Android tab.
Under Identification, enter a package name in the Package Name field. The package name should contain your company name and the app name, and it must be unique among apps uploaded to the Meta Horizon Store. Having a codename for the app in the package name is acceptable, as long as that codename is not also the name of an app on the Meta Horizon Store.
Go to Meta > Tools > Project Setup Tool.
Click “Fix” or “Apply” next to all appropriate items.
Unreal app manifests
Meta recommends using Meta’s fork of Unreal Engine for Unreal development. In addition to fixes that improve Unreal’s performance on Meta Quest devices, the fork includes the Project Setup Tool, which simplifies the process of modifying your app manifest.
To configure Unreal Engine to build Meta Quest Android .apk packages
From the main menu, select Edit then Project Settings.
Under the Platforms header, select Android.
Change Install Location to Auto.
Verify that Remove Oculus Signature Files from Distribution APK is not checked. If it’s selected, please uncheck this box.