android – Unity Google Play Games Plugin – First Leaderboard on Unpublished App – Testing Setup Problems?

I have been trying for a long time to fix this alone but now I am completely out of ideas and I have made a bit of a mess in my Google Play Developers Console (I am a brand new developer about to publish my first game for Android).

The game works pretty much perfectly and I am happy with it being ready to release. Its a very simple game, all about getting a high score. I wanted to use Google Play to handle my leaderboard. I’ve followed dozens of tutorials and the official Google documentation, but the code is slightly different on all. The one I’ve settled on for now is the Github Unofficial Google Play Plugin https://github.com/playgameservices/play-games-plugin-for-unity.

It seemed like it might be simple, and I kind of believe my code is sound. I feel my set-up of the Testers in the Google Dev Console might be the problem. I’ll try to explain quickly all the steps I took to include the leaderboard (sorry I may miss stuff as I’ve been at this for days already)

  1. Created my leaderboard inside my Dev Console. And copied the ‘Resources’ text
  2. Imported the plugin from Github, went through the initial set up steps such as pasting the resources text.
  3. Used Keystore Manager to make a new Custom Keystore. Input password etc.
  4. Build my app in Unity (Build settings: .AAB/Android App Bundle , Minify=Release)
  5. Uploaded this app to Internal Test Release (I also ended up doing ‘Closed’ and even ‘Open’ Testing. I also added my email used for Google Play in my phone to become a Tester.
  6. Try testing my game, the code where it tries to ‘Authenticate’ seems to not be called at all (ie. the ‘result’ switch has Debug Logs and none of them get printed in ADB Logcat).

Sorry If I missed some important step, but i think that was everything I did so far. Now here is the relevant code:

GameManager.cs:

    private void Start()
    {
        // ...rest of method was here

        Authenticate_Google_User();
    }

public void Authenticate_Google_User()
    {
        Debug.Log("Trying to Authenticate Client");
        PlayGamesPlatform.DebugLogEnabled = true;

        PlayGamesPlatform.Activate();

        PlayGamesPlatform.Instance.Authenticate(SignInInteractivity.CanPromptOnce, (result) => {
            switch (result)
            {
                case SignInStatus.Success:
                    Debug.Log("authenticate was success");
                    break;
                case SignInStatus.DeveloperError:
                    Debug.Log("Dev error");
                    break;
                default:
                    Debug.Log("authenticate failed");
                    break;
            }
        });
    }

So none of that seems to work. Because the rest of this code is for actually reporting the score or showing the leaderboard view. But this seems like it would work IF i was signed in.

    public void GameOver()
    {

        if (Social.localUser.authenticated)
        {
            if (GameManager.instance.GetScore() > 0)
                Social.ReportScore(GameManager.instance.GetScore(), "Leaderboard_ID_String", (bool success) => Debug.Log(success ? "success" : "not success"));
        }
        else
            Debug.Log("local user not authenticated");


        GameManager.instance.ShowGameOverCanvas(true);
    }
public void Button_ViewLeaderboard()
{
    Social.ShowLeaderboardUI();

}

So I have tried many other similar implementations and each time I have pushed my ‘version/build number’ up for the release in Google Dev Console. In the ReportScore function, if I removed the if(authenticated) part, I do indeed get a Debug.Log but it is to say “not success”

I feel my problem is either the set up of my Testers in Google play, or perhaps even my mobile phone is blocking me signing in (it is possible I set some privacy setting to No without thinking some time ago). But it may also of course be my code. Hence I am asking you experts here!

Please help 😀