2

So I managed to get the Integrity Token and Decode it as described here Google PlayIntegrity API: a Nightmare but now I have some bizarre situation.

I get the correct decode answer from the Google Cloud Server in my DEBUG version (LICENSED, UNRECOGNIZED_VERSION) running on a physical phone connected to my computer for debugging.

DEBUG

 {DecodeIntegrityTokenResponse@11016}  size = 1
 "tokenPayloadExternal" -> {TokenPayloadExternal@11044}  size = 4
 key = "tokenPayloadExternal"
 value = {TokenPayloadExternal@11044}  size = 4
       "accountDetails" -> {AccountDetails@11052}  size = 1
          key = "accountDetails"
          value = {AccountDetails@11052}  size = 1
             "appLicensingVerdict" -> "LICENSED"
       "appIntegrity" -> {AppIntegrity@11054}  size = 4
          key = "appIntegrity"
          value = {AppIntegrity@11054}  size = 4
             "appRecognitionVerdict" -> "UNRECOGNIZED_VERSION"
             "certificateSha256Digest" -> {ArrayList@11072}  size = 1
             "packageName" -> "com.package.name"
             "versionCode" -> {Long@11076} 30707
       "deviceIntegrity" -> {DeviceIntegrity@11056}  size = 1
          key = "deviceIntegrity"
          value = {DeviceIntegrity@11056}  size = 1
             "deviceRecognitionVerdict" -> {ArrayList@11081}  size = 1
             key = "deviceRecognitionVerdict"
                value = {ArrayList@11081}  size = 1
                0 = "MEETS_DEVICE_INTEGRITY"
       "requestDetails" -> {RequestDetails@11058}  size = 3
          key = "requestDetails"
          value = {RequestDetails@11058}  size = 3
             "nonce" -> "my-nonce"
             "requestPackageName" -> "com.visacsoft.customcalc"
             "timestampMillis" -> {Long@11094} 1654386755670

In the RELEASE version with the Test group enabled to validate it, I get the correct decode response (LICENSED, PLAY_RECOGNIZED), running on a physical phone downloaded from Google Play.

RELEASE with Test group

{DecodeIntegrityTokenResponse@23464}  size = 1
   "tokenPayloadExternal" -> {TokenPayloadExternal@23474}  size = 5
      key = "tokenPayloadExternal"
      value = {TokenPayloadExternal@23474}  size = 5
      "accountDetails" -> {AccountDetails@23483}  size = 1
         key = "accountDetails"
         value = {AccountDetails@23483}  size = 1
            "appLicensingVerdict" -> "LICENSED"
      "appIntegrity" -> {AppIntegrity@23485}  size = 4
         key = "appIntegrity"
         value = {AppIntegrity@23485}  size = 4
         "appRecognitionVerdict" -> "PLAY_RECOGNIZED"
            key = "appRecognitionVerdict"
            value = "PLAY_RECOGNIZED"
         "certificateSha256Digest" -> {ArrayList@23505}  size = 1
            key = "certificateSha256Digest"
            value = {ArrayList@23505}  size = 1
            0 = "012345678901234567890b1mYS6Y6rQ4gFUw"
         "packageName" -> "com.package.name"
            key = "packageName"
            value = "com.package.name"
         "versionCode" -> {Long@23509} 30707
            key = "versionCode"
            value = {Long@23509} 30707
      "deviceIntegrity" -> {DeviceIntegrity@23487}  size = 1
         key = "deviceIntegrity"
         value = {DeviceIntegrity@23487}  size = 1
            "deviceRecognitionVerdict" -> {ArrayList@23516}  size = 1
               key = "deviceRecognitionVerdict"
               value = {ArrayList@23516}  size = 1
                  0 = "MEETS_DEVICE_INTEGRITY"
      "requestDetails" -> {RequestDetails@23489}  size = 3
         key = "requestDetails"
         value = {RequestDetails@23489}  size = 3
            "nonce" -> "my-nonce"
               key = "nonce"
               value = "my-nonce"
            "requestPackageName" -> "com.package.name"
            "timestampMillis" -> {Long@23529} 1654368020674

But, if I delete the response for the Test group, in the same RELEASE version I get a weird error saying:

RELEASE without Test group

The requested URL /v1/:decode IntegrityToken? B=com.package.name was not found on this server.

in an HTML page message enter image description here

How can it Decode correctly for the DEBUG and Test RELEASE but it gives The requested URL not found on this server for the same RELEASE uploaded to Google Play but not in the test group??

I think I have missed some configuration somewhere, but I can't find any setting, in the Google Play Console or the Google Cloud, that fix this.

I have tried with and without the Cloud Project Number for the IntegrityTokenResponse getting the same error.

Adriaan
  • 17,741
  • 7
  • 42
  • 75
pvalle
  • 1,335
  • 1
  • 13
  • 20

0 Answers0