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.
The Store requirements for app manifests are described in the Virtual Reality Check (VRC) VRC.Quest.Packaging.1.
You can find the general specifications for your app’s AndroidManifest.xml file in Android Manifest Settings in the native development guide.
For release on the Store, your app’s manifest should also meet the following requirements:
For Meta Quest (v2 signing): <uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
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.
The installLocation must be set to auto.
The versionCode must be greater than the value used in a previous build of this app.
The android:debuggable value must be false. Your app must be a release version, not a debug version.
android:minSdkVersion and android:targetSdkVersion must be set appropriately. API versions greater than the minimums specified prevent users from installing your app. For previously released apps, use caution when changing the minSdkVersion as you may break compatibility for users on older versions of Android.
andriod: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.
The following table contains the accepted values for minSdkVersion and targetSdkVersion, and the optional compileSdkVersion.
Device
minSdkVersion
targetSdkVersion
compileSdkVersion (optional)
Quest 2
29-32
32
32+
Quest Pro
29-32
32
32+
Quest 3
29-32
32
32+
Specify the correct intent-filter for the MAIN action with the correct categories:
For OpenXR apps, you also need to add an “Oculus VR” category. The following shows an example:
The excludeFromRecents value should be set to true.
The manifest should include a meta-data element that specifies supported Meta Quest devices, such as: <meta-data android:name="com.oculus.supportedDevices" android:value="quest2|quest3|quest3s" />. This element is automatically added when you use Unity and Unreal Engine project settings to configure the target device(s). For more information, see Compatibiity Mode.
Note: Apps must specify installLocation="auto" instead of installLocation="internalOnly" or be rejected by the upload validator. 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.
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 Oculus Utilities for Unity 5 plugin or edit the manifest directly.
To configure Unity to build Meta Quest Android .apk packages
Note: These steps only work for Oculus Utilities for Unity 5 version 1.10 and later.
Open the Unity Editor.
Go to Oculus > Tools > Create store-compatible AndroidManifest.xml.
Click Edit > Project Settings > Player.
Expand the Other Settings properties, and select the Android tab.
Under Identification, enter an package name in the Package Name field. The package name should contain your company name and the app name. It cannot be the default value or be copied and pasted from another app. In addition, it must not be shared with any other Store app. Having a codename for the app in the package name is acceptable, as long as that codename is not also the name of a Store app.
Increment the Bundle Version Code. This value must always be greater than the value in the last build uploaded to any release channel.
Set Minimum API Level to Android 10 (API level 29)
Set Install Location to Automatic.
Unreal app manifests
Unreal Engine ignores the Android project settings options when building mobile apps and instead uses instructions in an XML file to create the application manifest file. This XML requires a small modification to make builds suitable for the Store.
To configure Unreal Engine to build Meta Quest Android .apk packages
From the main menu, select Edit then Project Settings.
Under the Platforms tab, select Android.
Change Install Location to Auto and close the Project Settings window.
From the main menu, select File > Package Project > Packaging Settings.
Check the For Distribution box.
Under the Platforms tab, select Android.
Verify that Remove Oculus Signature Files from Distribution APK is not checked. If it’s selected, please uncheck this box.