Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

APK is signed with Signature Scheme V3

NinjaGaijinNinjaGaijin Posts: 154 Oculus Staff
Some of you may have encountered this error prompt recently when uploading your APK:
ERROR: APK is signed with Signature Scheme V3, which is not yet supported. Please disable signing with Scheme V3 and upload again.
Our build upload and scanning process in the past has only supported v1 APK signing. However, recent change in the process now fully enforces v1 APK signing, resulting in the message you are seeing now.

As such, if you're using Unity, you should be able to use Gradle to v1 sign. To do so, make sure you generate a custom Gradle template (https://docs.unity3d.com/Manual/android-gradle-overview.html), which should create a file called mainTemplate.gradle. Open this file in your preferred text editor and add in the following line:

v2SigningEnabled false

A perfect example of what the mainTemplate.gradle file should look like can be found here: https://developer.android.com/about/versions/nougat/android-7.0#apk_signature_v2

If you are not using Unity or prefer not to use Gradle (and want to use the regular internal build system instead), you can use jarsigner (found in your JDK bin folder) to sign your built APK with v1. To do so, use the following command (replacing the variables in <> with your app's specific arguments):

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <KEYSTORE> -storepass <STOREPWD> -keypass <KEYPWD> <APKFILE> <ALIASNAME>
If you need immediate help or want additional support/context on an issue you are having with our platform or integrations:

1. Gather any and all logs, screenshots, and version numbers of relevant software (Oculus SDK, engine, etc.)
2. Please submit a ticket here (include what you've gathered in step 1).
3. Tag me @NinjaGaijin once you have done so!

Comments

  • rhillCampfirerhillCampfire Posts: 23 Oculus Start Member
    Hi. Where in the mainTemplate.gradle file should "v2SigningEnabled false" be included? The page you link to has it inside a release {} block and after a keyPassword line. In mainTemplate.dradle, the keyPassword line doesn't exist, thought the release {} block does. So I tried it inside the release {} block right after a line that says **SIGNCONFIG** but that failed. I also tried it instead of **SIGNCONFIG** and that failed. Etc.

    Where within the mainTemplate.gradle file, should the line "v2SigningEnabled false" be included?


  • pld_googlepld_google Posts: 1
    NerveGear
    Where within the mainTemplate.gradle file, should the line "v2SigningEnabled false" be included?
    Wish I had seen this a couple days ago! I just went through this process. Add a block just below the **SIGN** block. If you need to, you can see the full expansion of the template by checking "Export" from the build dialog.

      **SIGN**
      // Add this block just below **SIGN**
      signingConfigs {
        release {
          v1SigningEnabled true
          v2SigningEnabled false
        }
      }
    


Sign In or Register to comment.