The site has a new content architecture. We've added the ability to select your development device to show device-specific content. Please read our blog post Oculus Developer Center Update: Device-centric Documentation Architecture for more information.

Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Application Manifests for Release Builds

The application manifest of your mobile app must conform to our specifications if you want to upload the app to the Oculus Store.

Unity Application Manifests

The Unity Android project settings let you set some of the required application manifest options for building a mobile app suitable for the Oculus Store. To set the remaining manifest settings, use the Oculus Utilities for Unity 5 plugin.

The steps below describe how to configure Unity to build Oculus Store-compatible Android .apk packages.

Note: These steps only work for Oculus Utilities for Unity 5 version 1.10 and later.

  1. Click Oculus > Tools > Create store-compatible AndroidManifest.xml.
  2. Click Edit > Project Settings > Player.
  3. Expand the Other Settings properties, and select the Android tab.
  4. Under Identification, enter a unique name in the Package Name field. The package name must be unique within the entire Oculus ecosystem, but it must be similar to the app’s Oculus store title.
  5. Increment the Bundle Version Code. This value must always be greater than the value in the last build uploaded to any release channel.
  6. Set Minimum API Level to the following depending on your target device:

    • For Go: Android 5.0 ‘Lollipop’ (API level 21)
    • For Quest: Android 6.0 ‘Marshmallow’ (API level 23)
  7. Set Install Location to Automatic.

Unreal Application 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 Oculus Store.

The steps below describe how to configure Unreal Engine to build Oculus Store-compatible Android .apk packages.

  1. From the main menu, select Edit then Project Settings.
  2. Under the Platforms tab, select Android.
  3. Change Install Location to Auto and close the Project Settings window.
  4. From the main menu, select File > Package Project > Packaging Settings.
  5. Check the For Distribution box.
  6. Under the Platforms tab, select Android.
  7. Verify that Remove Oculus Signature Files from Distribution APK is not checked. If selected, please uncheck this box.
  8. Finally, sign your Android package by following the steps in Epic’s How To Sign UE4 Android Package guide.

Application Manifest Specification

Your AndroidManifest.xml file must meet the specifications outlined in the following: Android Manifest Settings.

For release:

  • For Quest and hybrid apps - Enable the headtracking feature per signing requirements of the app. For more information, see Application Signing.

    • For Quest (v2 signing): <uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
    • For hybrid Go/Quest apps (v1 signing): <uses-feature android:name="android.hardware.vr.headtracking" android:required="false" android:version="1" />
  • The package name should not be left as default or copy/pasted from another app. It must not be shared with any other Oculus Store app.

  • 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, android:targetSdkVersion, and android:compileSdkVersion must be set appropriately. API versions greater the minimums specified prevent users from installing your app. For previously released app, use caution when changing the minSdkVersion as you may break compatibility for users on older versions of Android. For apps that target both Quest and Go/Gear with the same APK. minSDKVersion should be lower of the values, but the target and compile versions must align with the higher Quest values.
    Following are the accepted values for minSdkVersion, targetSdkVersion and compileSdkVersion by device:

  • Specify the correct intent category for the MAIN action:

    • For Oculus Go, use android.intent.category.INFO, and NOT android.intent.category.LAUNCHER so that your app appears only in Oculus Home and not the device launcher.
    • For Oculus Quest, android.intent.category.LAUNCHER is allowed.
  • The excludeFromRecents value should be set to true.

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 at