Corrigez les erreurs 10 et 28444 de Google Sign-In : Developer console is not set up correctly
ApiException: 10 de l’ancien SDK Google Sign-In et [28444] Developer console is not set up correctly de Credential Manager sont le même problème de configuration. L’application qui demande la connexion (son nom de package et le SHA-1 du certificat qui a signé ce build) ou l’ID client Web qu’elle a transmis ne correspond pas à ce qui est enregistré dans le projet. C’est l’enregistrement qu’il faut corriger, pas le code. Commencez par vérifier que le SHA-1 de la clé qui a signé le build que vous exécutez figure dans Firebase.
En bref
- Même erreur, autre nom. 10 est le
DEVELOPER_ERRORde l’ancien SDK ; 28444 est le message de même sens que renvoie Credential Manager. La cause est le nom de package, le SHA-1 de signature ou l’ID client Web. Distinguer les erreurs - Enregistrez le SHA-1 de la clé qui a signé le build en cours d’exécution. La clé de débogage, la clé d’importation et la clé de signature d’application de Google Play sont toutes différentes. Le SHA-1 de chaque build
serverClientIdattend l’ID client Web. Pas l’ID client Android. La valeur à passer- L’ancien SDK a été supprimé en août 2026. Avec Credential Manager, la même erreur de configuration peut aussi ressembler à une annulation par l’utilisateur. Migrer
Distinguer les erreurs
| Erreur | Où | Signification |
|---|---|---|
ApiException: 10 | L’ancien Google Sign-In for Android | DEVELOPER_ERROR. L’application est mal configurée. |
[28444] Developer console is not set up correctly. | Credential Manager. Dans google_sign_in 7 de Flutter, GoogleSignInExceptionCode.unknownError | Code non documenté. Comme le dit le message, la configuration OAuth ne correspond pas à l’application. |
| Annulé sans que l’utilisateur ait annulé | Credential Manager (GetCredentialCancellationException, canceled dans Flutter) | Des erreurs de configuration sont parfois signalées comme une annulation. |
ApiException: 12500 | L’ancien Google Sign-In for Android | Selon la documentation Firebase, l’adresse e-mail d’assistance n’est pas renseignée ou une clé SHA manque. |
NoCredentialException | Credential Manager | Ce n’est pas un problème de configuration. L’appareil n’a pas de compte Google, ou la requête est configurée pour ne proposer que les comptes déjà connectés à l’application (voir plus bas). |
Les trois premières ont les mêmes causes. La documentation du plug-in Flutter (google_sign_in_android) cite comme causes fréquentes des erreurs de configuration un SHA de signature manquant ou incorrect pour un build, un nom de package incorrect côté serveur et un serverClientId manquant ou incorrect. Vérifiez-les dans cet ordre.
Le SHA-1 de la clé qui a signé ce build
Google reconnaît l’application qui demande la connexion à son nom de package et au SHA-1 du certificat qui a signé l’APK. Le nom de package est l’applicationId de build.gradle (avec le suffixe qu’ajoute le type de compilation, le cas échéant), et il doit être identique à celui de l’application Android enregistrée dans Firebase. La signature dépend de la façon dont l’application a été installée.
| Build installé | Signé avec | Où trouver le SHA-1 |
|---|---|---|
| Build de débogage lancé depuis Android Studio | Le keystore de débogage de cet ordinateur (différent sur chaque ordinateur) | L’entrée debug de signingReport |
| Build de release que vous avez signé et installé vous-même | Votre clé d’importation (de release) | L’entrée release de signingReport |
| Application installée depuis Google Play (tous les canaux) | La clé de signature d’application détenue par Google | La page Gérer la signature d’application Play (Manage Play app signing) de la Play Console |
| Application installée via le Partage interne d’application (Internal app sharing) | Le certificat de test interne de Play | Certificat de test interne (Internal test certificate), sur la page Partage interne d’application de la Play Console |
# Every build variant's signing key, from the project root
./gradlew signingReport
# The debug keystore (password: android)
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
# The certificate that signed an APK or AAB you already have
keytool -printcert -jarfile app-release.aabAjoutez le SHA-1 trouvé au champ Empreintes de certificat SHA (SHA certificate fingerprints) de l’application Android, dans Paramètres du projet (Project settings) > Général (General) > Vos applications (Your apps) de la console Firebase, puis téléchargez à nouveau google-services.json pour remplacer le vôtre. Firebase crée le client OAuth Android pour cette empreinte. Enregistrez toutes les clés que vous utilisez : la connexion fonctionnera quelle que soit la façon dont l’application a été installée.
- Si l’application fonctionne quand vous l’installez vous-même, mais pas depuis Play, il manque la clé de signature d’application. Play signe à nouveau l’application avec la clé de signature d’application détenue par Google, et non avec votre clé d’importation.
- Les nouvelles applications sont signées par défaut par Play avec trois clés (signature prête pour l’informatique quantique). L’aide de la Play Console vous demande alors d’enregistrer les trois empreintes auprès de vos fournisseurs d’API.
- Une même paire nom de package et SHA-1 ne peut être enregistrée que dans un seul projet, tous projets Firebase et Google Cloud confondus. Si vous séparez projets de développement et de production, donnez à chaque build son propre nom de package.
serverClientId attend l’ID client Web
serverClientId attend l’ID client OAuth de l’application Web de votre projet Google Cloud. C’est la valeur utilisée comme destinataire (audience) des jetons d’ID Google : l’ID client Android n’a donc rien à y faire. Dans un projet Firebase, c’est l’entrée de google-services.json dont le client_type vaut 3, que le plug-in google-services transforme en R.string.default_web_client_id.
// Android (Kotlin): the Sign in with Google button
val buttonOption = GetSignInWithGoogleOption.Builder(
serverClientId = getString(R.string.default_web_client_id),
).build()
// Android (Kotlin): the bottom sheet, offering every account on the device
val sheetOption = GetGoogleIdOption.Builder()
.setServerClientId(getString(R.string.default_web_client_id))
.setFilterByAuthorizedAccounts(false)
.build()
// Flutter (google_sign_in 7), without google-services.json
await GoogleSignIn.instance.initialize(
serverClientId: 'YOUR_WEB_CLIENT_ID.apps.googleusercontent.com',
);google_sign_in7 de Flutter lit cette valeur sansserverClientIdquandgoogle-services.jsoncontient une entrée de client Web. Sinon, ajoutez une application Web au projet Firebase et téléchargez à nouveau le fichier. Sur Android,clientIdn’est pas utilisé.- Si 28444 est apparu pour la première fois après le passage de 6.x à 7, soupçonnez
serverClientId. L’équipe Flutter explique que l’ancien SDK qu’utilisait 6.x ne validait pas toujours cette valeur, si bien qu’une valeur erronée a pu fonctionner (flutter/flutter #174319).
Passer de l’ancien SDK à Credential Manager
Les API de l’ancien Google Sign-In for Android ont été supprimées dans play-services-auth 22.0.0 (26 août 2026). À partir de cette version, le code de connexion écrit avec GoogleSignInClient ne compile plus : passez à Credential Manager.
| Ancien SDK | Credential Manager |
|---|---|
L’écran de connexion de GoogleSignInClient | GetSignInWithGoogleOption (bouton) ou GetGoogleIdOption (bottom sheet) |
silentSignIn() | GetGoogleIdOption avec setFilterByAuthorizedAccounts(true) et setAutoSelectEnabled(true) |
requestIdToken(webClientId) | Le même ID client Web dans serverClientId |
signOut() | clearCredentialState() |
ApiException: 10 | [28444] Developer console is not set up correctly ou une annulation |
setFilterByAuthorizedAccountsvauttruepar défaut. Les utilisateurs qui ne se sont jamais connectés à l’application obtiennent uneNoCredentialException; pour l’inscription et la première connexion, passez-le àfalseou utilisez le flux du bouton.- Sur un émulateur, connectez-vous à un compte Google. Utilisez une image système avec Google APIs. Sans compte sur l’appareil, vous obtenez une
NoCredentialException.
Sources
- CommonStatusCodes.DEVELOPER_ERROR, notes de version des services Google Play : sens de 10, suppression des API Google Sign-In
- Migrer depuis l’ancien Google Sign-In, implémenter Sign in with Google avec Credential Manager, dépannage de Credential Manager
- S’authentifier avec Google sur Android (Firebase), FAQ de dépannage Firebase pour Android, le plug-in google-services, empreintes SHA et clients OAuth (Aide Firebase)
- Clients OAuth (Aide Google Cloud), obtenir le SHA-1, signature d’application Play, partage interne d’application
- google_sign_in_android, flutter/flutter #174319 (signalement de 28444), codelab Sign in with Google
