Home > Blockchain >  Google Play Services sign in not working well on Unity Android
Google Play Services sign in not working well on Unity Android

Time:05-14

I'm trying to add Google Play Services on my Unity Android project. I've got already implement google play services plugin to my project. Filling the all crediantials. I've got 2 different internal test accounts on developer console.

Here is my question:

  • Account A: SignInStatus Success and not showing welcome pop-up message.
  • Account B: SignInStatus Canceled and not sign in.

Is it because internal test or something?

unity version: 2019.4.16f1

gpgs plugin verison: 0.11.01

Here is my code: referanced: https://github.com/playgameservices/play-games-plugin-for-unity

using GooglePlayGames;
private bool Authenticated;

public void Start() {
  PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}

internal void ProcessAuthentication(SignInStatus status) {
  if (status == SignInStatus.Success) {
    // Continue with Play Games Services
    Authenticated = true;
  } else {
    // Disable your integration with Play Games Services or show a login button
    // to ask users to sign-in. Clicking it should call
    // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
    Authenticated = false;
  }
}

CodePudding user response:

There is nothing wrong with your code.

I just created a new project, got a new SHA-1, added my account to the new google play console and verified that everything was tested successfully.

In doing so, we found the following problems: If you are using the 11.01 version, please check if there is a problem by following the procedure below.

Follow the steps below to check. (Assets → External Dependency Manager → Android Resolver → Force Resolve)

Assets/GooglePlayGames/com.google.play.games/Editor/GooglePlayGamesPluginDependencies.xml:11: Repo path 'Packages/com.google.play.games/Editor/m2repository' does not exist.

If the above error occurs, you can solve it by choosing one of two solutions.

First, see comments by @greg-hanes here.

The specific method is to create a GooglePlayGamesPluginDependencies.xml file inside the Assets/GooglePlayGames/com.google.play.games/Editor/m2repository folder and paste the following contents.

<?xml version="1.0" encoding="UTF-8" ?>
<dependencies>
    <!-- Internal library dependency generated at build time.
        It also defines the transitive dependencies on play-services
    -->
    <androidPackages>
        <androidPackage spec="com.google.games:gpgs-plugin-support:0.11.01">
            <repositories>
                <repository>Assets/GooglePlayGames/com.google.play.games/Editor/m2repository</repository>
            </repositories>
        </androidPackage>
    </androidPackages>
</dependencies>

And then Force Resolve again. (Gradle failed to fetch dependencies on the way. If you get an error, make sure your JDK path is set correctly.)

Second, downgrade the version to version 10.14.

Here is my code that I wrote to run only once at runtime. It works successfully when I run it.

using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;

public static class Login
{
  [RuntimeInitializeOnLoadMethod]
  public static void SignIn()
  {
    PlayGamesPlatform.Instance.Authenticate(status =>
    {
      if (status == SignInStatus.Success)
      {
        Debug.Log("Success Authenticate!");
      }
      else
      {
        Debug.Log($"Failed Authenticate... : {status}");
      }
    });
  }
}

You can check the logs on Android by installing the Android Logcat package.

I hate the 11.01 version so I'm using the 10.14 version :)

Hope your problem is solved!

  • Related