You must sign the release version of your app with an Android certificate before you submit it for review.
Android uses a digital certificate (also called a keystore) to cryptographically validate the identity of application authors. All Android applications must be digitally signed with such a certificate in order to be installed and run on an Android device.
All developers must create their own unique digital signature and sign their applications before submitting them to Oculus for approval. For more information, see Sign Your App in the Android documentation.
Make sure to save the certificate file you use to sign your application. All subsequent updates to your application must be signed with the same certificate file.
Oculus uses v1 and v2 of 3 APK signing schemes. The version you should use is based on your app’s target device(s):
|Target Device(s)||Signing Scheme Version||More Details|
|Quest only||v2||You must add headtracking feature to the manifest to sign as v2. For more information, see Application Signing (Quest).|
|Gear VR and/or Go||v1||Application Signing (Go/Gear)|
|Gear VR and/or Go and/or Quest||Sign as v1, but if app uses headtracking, mark the manifest with ||For more information, see Application Signing (Quest).|
Unity automatically signs Android applications with a temporary debug certificate by default. Before building your final release build, create a new Android keystore and assign it with the Use Existing Keystore option, found in Edit > Project Settings > Player > Publishing Settings. For more information, see Android Player Settings: Publishing Settings in the Unity documentation.
For Quest apps note that Some versions of Unity 2017 do not support v2 signing. In this case, build to gradle, open your project in Android Studio and generate a v2 signed APK.
The latest version of Unreal Engine in Github supports v2 signing. If you are using an older version of Unreal and publishing a Quest app, you will need to edit the manifest to use the correct signing schema or manually patch the version of Unreal you are using to sign an app correctly.