web-dev-qa-db-fra.com

Erreur de connexion Google Statut {statusCode = DEVELOPER_ERROR, resolution = null}

J'intègre la connexion Gmail dans mon application Android en suivant ce fil de discussion: 

https://developers.google.com/identity/sign-in/Android/sign-in?configured=true

Mais je reçois une erreur en tant que:

Status {statusCode = DEVELOPER_ERROR, resolution = null}

J'ai parcouru cette documentation de code d'état ici: 

https://developers.google.com/Android/reference/com/google/Android/gms/common/ConnectionResult.html#DEVELOPER_ERROR

Le lien ci-dessus ne permet pas de diagnostiquer le problème,

J'ai créé le fichier de magasin de clés de débogage et généré SHA-1 à l'aide de keytool, également dans la console de développeur Google, j'ai ajouté le nom du package tel qu'il est dans le fichier manifeste ou le fichier de gradation.

Mais tout semble échouer, quelqu'un peut-il me dire en quoi ce code d'erreur suggère ce qui peut mal se passer?

4
pcj

Le problème était l'inadéquation SHA1,

1] Premier fichier de magasin de clés: J'ai résolu l'erreur, le problème était lors de la construction d'apk. Android Studio prenait le fichier de magasin de clés par défaut, situé à l'intérieur de C:\Users\<LOGGED_IN_USER_NAME>\.Android\debug.keystore.

2] Deuxième fichier de magasin de clés: J'ai également créé un autre fichier de magasin de clés situé dans un répertoire différent, à savoir app/keystore/debug.keystore.

Lors de la configuration de la console de développeur Google pour intégrer la connexion gmail à l'application, j'ai attribué à sha-1 la clé générée par le deuxième fichier de clés ci-dessus, le studio lors de la création du fichier apk prenant un autre fichier de clés, d'où la disparité des clés sha-1.

Afin de prendre mon fichier de clés situé à @ app/keystore/debug.keystore, j'ai configuré le fichier Gradle au niveau de l'application avec le code suivant: 

signingConfigs {
        debug {
            storeFile file('keystore/debug.keystore')
            keyAlias 'androiddebugkey'
            keyPassword 'Android'
            storePassword 'Android'
        }
        /*
        release {
            storeFile file('release.keystore')
            storePassword "mystorepassword"
            keyAlias "mykeyalias"
            keyPassword "mykeypassword"
        }
        */

Maintenant, la signature apk générée ap-1 correspond à la clé sha-1 configurée sur la console de développement Google pour votre application.

Remarque: utilisez toujours debug.keystore pour le débogage de l’intégration gmail (au moment du développement).

Refs: 

Pour l'intégration de Gmail: https://developers.google.com/identity/sign-in/Android/start-integrating

Pour savoir quel sha-1 est utilisé pour votre application, consultez le fil de discussion suivant: Empreinte SHA-1 du certificat de magasin de clés

12
pcj

Si vous utilisez React Native Google Signin et Firebase, essayez ceci.

Étape 1: Obtenez le SHA-1 de votre keystore de développeur pour Android

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.Android/debug.keystore

Le mot de passe est Android. Copiez la valeur SHA-1, qui ressemblera à ceci dans la sortie:

Certificate Fingerprints
....
SHA1: aa:bb:cc:dd:ee:ff:11:22:33:44:47:D0:9E:8D:E0:0C:79:F1:0F:CB

Étape 2: Ajoutez le SHA à l'application Android dans la console Firebase.

Ouvrez maintenant votre application Android dans la console Firebase et ajoutez le SHA-1:

 enter image description here

4
Dave Kerr

Mon problème était que la clé SHA1 dans la console du développeur ne correspondait pas à celle générée à partir de mon fichier debug.keystore. Courir 

keytool -exportcert -keystore path-to-debug-or-production-keystore -

Copiez la clé SHA1 et collez-la dans la console du développeur (console.developers.google.com) sous votre application> informations d'identification> identifiants client OAuth 2.0> Oauth> empreinte digitale du certificat de signature.

2
Mike Miller

Je viens juste de me débloquer après avoir lutté avec cela pendant presque 6 heures et voici mes conclusions.

Veuillez vous assurer que:

  1. Nom du package correct dans la console développeur de Google. (N'utilisez pas uniquement le nom du package provenant d'AndroidManifest.xml. Inspectez les fichiers Gradle pour voir si le nom de votre saveur est modifié de manière dynamique lors de la création). 

  2. Générez le hachage Sha-1 dans emplacement correct du magasin de clés . (J'allais avec l'emplacement de magasin de clés par défaut ~/.Android/debug.keystore, mais j'ai découvert que mon application remplaçait un autre emplacement dans le référentiel et que, par conséquent, je recevais toujours developer_error.)

PS: si votre application utilise un serveur dorsal pour extraire les données hors ligne, créez le projet à partir du flux de connexion de Google, car cela générera des identifiants de client OAuth pour Android et WebServer.

0
TrueBlue

Une autre chose à surveiller est que les versions les plus récentes de keytool (par exemple pour Java 9) généreront une valeur SHA-256, pas SHA-1.

0
Phil Blandford