Application Manifests for Release Builds

If you want to upload your app package to the Oculus Store, the app manifest (AndroidManifest.xml) for your Android app must conform to the Oculus specifications described in this topic.

This topic contains following sections:

Manifest Specification for Release

Find general requirements for your app’s AndroidManifest.xml file in Android Manifest Settings in the native development guide.

For release in the Oculus Store, your app’s manifest should also meet the following requirements:

  • For 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 in the Oculus store.

  • 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.
    Following are the accepted values for minSdkVersion, targetSdkVersion and compileSdkVersion by device:

    DeviceminSdkVersiontargetSdkVersioncompileSdkVersion
    Quest/Quest 22325+26+
  • Specify the correct intent-filter for the MAIN action with the correct categories:

    • For Oculus Quest, android.intent.category.LAUNCHER is allowed.
    • For OpenXR apps, you also need to add the Oculus VR category. The following shows an example:

        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="com.oculus.intent.category.VR" />
        <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      
  • The excludeFromRecents value should be set to true.
  • For apps that target both Quest and Quest 2, the manifest should include a meta-data element that specifies the target devices like the following: <meta-data android:name="com.oculus.supportedDevices" android:value="quest|quest2" />. This element is automatically added when you use Unity and Unreal Engine project settings to configure the target device(s).

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 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 or edit the manifest directly.

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 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 Oculus Store app.
  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 Quest: Android 6.0 ‘Marshmallow’ (API level 23)
  7. 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 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 Distribution Signing guide.

Manifest VRCs

The following VRCs describe the store requirements for app manifests.