Error 12501 authenticating with google sign-in

后端 未结 12 1940
我在风中等你
我在风中等你 2020-11-28 13:12

I\'m using google sign-in services to authenticate users that use my app. I got it to work when I just requested email information

GoogleSignInOptions gso =          


        
相关标签:
12条回答
  • 2020-11-28 13:50

    1.Specify signingConfigs in your gradle file

    signingConfigs {
            config {
                keyAlias 'appalias'
                keyPassword 'hunter123'
                storePassword 'hunter123'
                storeFile file('path/to/keystore.jks')
            }
    }
    

    2.Go to Build Types in Project Structure (in Android Studio) and specify signingConfigs to "config"

    Now clean your project and build again. It should work.

    If the above doesn't work then below is your last resort.
    Try step one and build and check. If it's not working go to next step and try to build again.

    1. Build a signed apk (With remember password checked).
    2. Before signing check the filename of the keystore file and the one yo give in while signing the apk (in android studio).
    3. Install the signed apk in your device.
    4. Wait for five minutes.
    5. Try singing in to google. If still 12501 is coming wait five more minutes. While doing that hit gradle sync.
    6. Try again. It should work.

    Edit: Google have added apk signing in the console. If you already signed your apk, ignore it OR if you want to use it be careful with it because it can break your current google signin settings

    0 讨论(0)
  • 2020-11-28 13:50

    I don't know how relevant this question is in 2019. However, Error code 12501 means:

    The sign in was cancelled by the user. i.e. user cancelled some of the sign in resolutions, e.g. account picking or OAuth consent.

    Check following link for more information:

    https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInStatusCodes.html#SIGN_IN_CANCELLED

    0 讨论(0)
  • 2020-11-28 13:51

    The <meta-data> from Androidmanifest.xml is outside of <application></application> enclosure. Thats why you get 12501 error

        <meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/app_id" />
        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>
    
    0 讨论(0)
  • 2020-11-28 13:55

    Obviously first check your release sha1 key is correct or not. But if still it is not working and you ar using google play services 8.4.0 (i.e.compile 'com.google.android.gms:play-services:8.4.0'), the issue could be solved by modifying GoogleSignInOption object. Instead of:

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                        .requestEmail()  
           .requestIdToken("YOUR_WEB_API_ID.apps.googleusercontent.com")
                        .build();
    

    You have to use :

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestScopes(new Scope(Scopes.PLUS_LOGIN))
                    .requestScopes(new Scope(Scopes.PLUS_ME))
                    .requestEmail()
                    .build();
    

    This solves error returning statusCode=INTERNAL_ERROR OR statusCode=Error 12501 OR statusCode=Error 12500. Then this gso object could be used for creating GoogleApiClient as shown below:

     mGoogleApiClient = new GoogleApiClient.Builder(this)
                    .enableAutoManage(this, this)
                    .addApi(Auth.GOOGLE_SIGN_IN_API,gso)
                   // .addApi(Plus.API, null)
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this)
                   // .addScope(Plus.SCOPE_PLUS_LOGIN)
                    .build(); 
    

    See this for detail: Google signin not working on release version of android

    0 讨论(0)
  • 2020-11-28 13:59

    I had the same problem. The problem was that I somehow had the wrong "API Project" selected and therefore chose the wrong web client key. Obviously there were two OAuth2 server client IDs created in both of my API Projects while my attempts to get the demo app running.

    0 讨论(0)
  • 2020-11-28 14:00

    Make sure you added the SHA-1 fingerprint for your (release) signing key to the Firebase console

    Find your SHA1 key: keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>

    Add it to the firebase console: go to https://console.firebase.google.com, select your app, select settings.

    0 讨论(0)
提交回复
热议问题