Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
Claytonious's avatar
8 years ago

Rejection due to "It appears that your app does not support entitlement checks..."

Our app is being rejected due to this failure in technical review: "It appears that your app does not support entitlement checks to prevent unauthorized use of your content. Documentation on how to add entitlement checks can be found here: https://developer.oculus.com/documentation/platform/latest/concepts/pgsg-get-started-with-sdk/"

However, we *do* perform entitlement checks, exactly as that documentation describes. This happens immediately when the game starts:
    void Start()
{
Debug.Log("TCAuth: Initializing Core...");
Core.Initialize();
Debug.Log("TCAuth: Initialized Core. Checking entitlement...");
Entitlements.IsUserEntitledToApplication().OnComplete(HandleEntitlement);
}

private void HandleEntitlement(Message msg)
{
Debug.Log("TCAuth: Handling entitlement. Error == " + msg.IsError);
if (msg.IsError)
{
Debug.LogError("TCAuth: Not entitled to app");
#if !UNITY_EDITOR
UnityEngine.Application.Quit();
#endif
}
else
{
Debug.Log("TCAuth: Getting logged in user...");
Users.GetLoggedInUser().OnComplete(HandleGetUser);
}
}
This seems to be exactly what the docs are saying to do, doesn't it? Grateful for any ideas or feedback on this issue... thanks!

9 Replies

Replies have been turned off for this discussion
  • @Claytonious
    Try to use the async call for the initialization maybe it helps (it worked for me). If you log out from the Oculus app on the test device and start your app the entitlement check will fail so you can test it.
  • @palii90, thanks for that tip about testing by logging out of Oculus home. This revealed that Platform.Core.Initialize() was throwing an exception. This is supposedly fixed in the latest platform SDK, so I'm trying that now, but other users have reported that they're just catching that exception and treating it as unauthorized, so I'll fallback on that if this doesn't work.
  • Updating to the latest platform SDK (1.19) made no difference. (And Utilities 1.20). Core.Initialize() still throws an exception when logged out of Oculus. So, trying with the catch, then...
  • Anonymous's avatar
    Anonymous
    I'm having a similar issue as my entitlement checks are failing. Let me know if you figure out how to fix this.
  • Adding an exception handler for the call to Core.Initialize() allowed us to pass review.
  • Anonymous's avatar
    Anonymous
    Sorry for the confusion but can you elaborate on how you did this? Going off of the script you used above I'm finding the entitlement check always passes even when the app id is wrong. Thanks again for the help.






    void Start()

        {

            Debug.Log("TCAuth: Initializing Core...");

            Core.Initialize("0234");

            Debug.Log("TCAuth: Initialized Core. Checking entitlement...");

            Entitlements.IsUserEntitledToApplication().OnComplete(HandleEntitlement);

        }



        private void HandleEntitlement(Message msg)

        {

            Debug.Log("TCAuth: Handling entitlement. Error == " + msg.IsError);

            if (msg.IsError)

            {

                Debug.LogError("TCAuth: Not entitled to app");

                #if !UNITY_EDITOR

                UnityEngine.Application.Quit();

                #endif

            }

            else

            {

                Debug.Log("TCAuth: entitled");



            }        

        }
      
  • One difference is that I'm not passing the App Id to the Initialize call, but letting it populate from the OculusSettings.asset instead. The only change I made was to try/catch on the call to Initialize, like this:

    try
    {
    Core.Initialize();
    }
    catch(Exception ex)
    {
    Debug.LogError("TCAUTH: Failed to init Core - assuming user is unauthorized...");
    UnityEngine.Application.Quit(); // Or whatever your REAL handling is...
    }