Réponse rapide
L’erreur 10 de Google Sign-In, DEVELOPER_ERROR, signifie que l’application Android est mal configurée. Si la connexion fonctionne en local mais échoue dans un test fermé Play, vérifiez que le SHA-1 de signature de l’application installée depuis Play et son nom de package final sont enregistrés dans le bon projet Firebase ou Google Cloud, et que tout serverClientId ou webClientId est l’ID client de l’application Web, et non celui d’Android. Testez ensuite à nouveau avec la version installée depuis Google Play.
Choisissez votre configuration
Vous avez déjà ajouté le SHA-1? Passez à ce qu’il faut vérifier ensuite.
Cet article traite d’une seule panne: la connexion Google native qui ne fonctionne plus dans la copie livrée par Google Play. Il la distingue d’autres erreurs qui lui ressemblent, puis aborde les frameworks, les autres fournisseurs de connexion et ce que les testeurs doivent signaler. Chaque page Google citée ici a été vérifiée le 16 octobre 2026, et les témoignages de la communauté sont signalés comme tels. Les sources sont listées à la fin.
Sur cette page
Réparer Google Sign-In dans la version Play
Faites correspondre l’application installée par vos testeurs avec le nom de package et le SHA-1 de signature enregistrés pour elle. Suivez ces étapes dans l’ordre; les procédures Firebase et Google Cloud viennent ensuite.
Identifiez la copie qui échoue
Vérifiez que le testeur a installé l’application depuis votre test fermé sur Google Play, et notez la version qu’il possède. Notez ensuite l’ID d’application final de cette version. Le guide de compilation Android indique que l’ID de votre application est défini par la propriété applicationId, qui peut différer de votre namespace source ou recevoir un suffixe dans un build flavor. Si le testeur ne parvient pas du tout à installer l’application, c’est un autre problème: consultez pourquoi une application n’est pas disponible pour les testeurs.
Ouvrez la signature d’application Play
Dans la Play Console, ouvrez l’application et allez dans Protected with Play. Google y a déplacé la signature d’application en mai 2026, et sa propre aide nomme l’étape suivante de deux façons (tableau ci-dessous). Les deux chemins mènent à la même page.
| Chemin tel que Google l’écrit | Où Google l’utilise | Ce qu’il faut y ouvrir |
|---|---|---|
| Protected with Play > Play Store distribution > Go to Play app signing | Où Google l’utiliseAide Play Console, Utiliser la signature d’application Play, section sur l’enregistrement auprès des API | Ce qu’il faut y ouvrirApp signing key certificate, puis la valeur SHA-1 |
| Protected with Play > Play Store protection > Manage Play app signing | Où Google l’utiliseLes notes de mise à jour de mai 2026 de Google Play et une autre section de la même page d’aide | Ce qu’il faut y ouvrirLa même page; les libellés des menus peuvent varier d’un compte à l’autre |
Copiez le SHA-1 de la clé de signature d’application
Ouvrez la section App signing key certificate (certificat de la clé de signature d’application), et non le certificat de la clé d’importation, puis copiez son SHA-1. Si Play affiche plus d’une clé de signature pour votre application, enregistrez chaque empreinte concernée (voir plusieurs certificats de signature). Conservez vos empreintes de debug et locales existantes et ajoutez celles de Play à côté. Ne changez pas votre clé de signature pour réparer la connexion.
Enregistrez-le là où votre application gère la connexion
Suivez la procédure Firebase ou la procédure Google Cloud, selon ce qu’utilise votre application, et utilisez le même projet que celui qui a émis les ID client présents dans votre application.
Testez à nouveau la version Play installée
Si vous avez seulement modifié un enregistrement dans Firebase ou Google Cloud, réessayez avec la copie déjà installée depuis Play avant de recompiler quoi que ce soit; des développeurs ont signalé qu’un correctif portant uniquement sur l’enregistrement avait fonctionné sans nouvelle importation. Si vous avez modifié la configuration intégrée, un ID client, le code ou une dépendance, importez une nouvelle version dans le même canal fermé et testez celle-ci. Google ne publie aucun délai fixe pour la prise en compte d’une nouvelle empreinte: testez à nouveau au lieu d’attendre un nombre d’heures déterminé.
Ajoutez le certificat Play dans Firebase
Sélectionnez l’application Android correspondante avant d’ajouter son empreinte de signature Play. Les étapes suivent l’aide de Firebase sur les empreintes et son guide de connexion avec Google.
- Dans la console Firebase, ouvrez le projet utilisé par votre application, puis Project settings > General.
- Sous Your apps, sélectionnez l’application Android dont le nom de package correspond à la version qui échoue.
- Cliquez sur Add fingerprint, collez le SHA-1 de la signature d’application Play et enregistrez. Ajoutez-le à côté des empreintes existantes au lieu de les remplacer.
- Sous Authentication > Sign-in method, vérifiez que Google est activé.
- Si Firebase vous invite à télécharger un
google-services.jsonmis à jour, remplacez le fichier dans votre projet. Selon Firebase, ce fichier “contient les informations du client OAuth nécessaires à la connexion avec Google”, donc un fichier modifié implique une nouvelle version. Vérifiez que son projet et son package correspondent à l’application qui échoue.
N’ajoutez un SHA-256 que lorsqu’un service Firebase précis le demande. L’authentification par téléphone, par exemple, utilise le SHA-256 pour son parcours Play Integrity; Google Sign-In lui-même s’appuie sur le SHA-1.
Configurer Google Cloud sans Firebase
Deux clients OAuth remplissent deux rôles différents. Le client Android enregistre votre application; l’ID client Web est celui qu’utilise votre demande de jeton.
| Type de client | Ce qu’il contient | Où vous l’utilisez |
|---|---|---|
| Android | Ce qu’il contientVotre nom de package et le SHA-1 du certificat de signature | Où vous l’utilisezEnregistre l’identité de l’application native. Vous ne collez pas cet ID client dans serverClientId. |
| Application Web | Ce qu’il contientL’ID client Web | Où vous l’utilisezLe serverClientId ou webClientId de votre demande de jeton, et l’audience acceptée par votre backend. Le codelab Sign in with Google de Google le décrit comme agissant “en tant que client backend du service Google Sign-in.” |
- Sélectionnez le projet qui a émis vos ID client, puis ouvrez Google Auth platform > Clients (aide Google Cloud).
- Cherchez un client Android existant avec ce nom de package et ce SHA-1 avant d’en créer un autre.
- S’il n’existe pas, choisissez Create Client, réglez Application type sur Android, saisissez un nom, le nom de package et le SHA-1 de la signature d’application Play, puis cliquez sur Create. Le formulaire Android comporte un champ SHA-1; un SHA-256 n’a rien à y faire.
- Enregistrez chaque paire package et certificat dont vous avez besoin, par exemple debug, release locale et Play.
- Laissez le client Web en place pour la demande de jeton, et ne mettez jamais de code secret du client dans l’application.
Prouvez la réparation
Une seule connexion réussie ne prouve pas que la version est réparée. Cette liste de contrôle est notre test d’acceptation recommandé, pas une règle de Google; la dernière ligne compte, car chez un développeur la connexion a réussi une fois puis a de nouveau échoué à la connexion suivante, un problème de session qu’une vérification unique n’aurait pas détecté.
| Vérification | Preuve de réussite | En cas d’échec |
|---|---|---|
| Bonne application et bonne version | Preuve de réussiteLe testeur confirme l’installation Play et la version prévues | En cas d’échecRéglez d’abord la livraison de la version ou du canal |
| Première connexion | Preuve de réussiteLe choix d’un compte ramène à une application connectée | En cas d’échecRelevez l’exception exacte et utilisez le tableau des erreurs ci-dessous |
| Fonctionnalité protégée | Preuve de réussiteLe testeur peut utiliser une fonctionnalité qui exige une connexion | En cas d’échecExaminez la gestion des jetons dans l’application et le backend |
| Déconnexion et reconnexion | Preuve de réussiteUne deuxième connexion fonctionne sans réinstallation | En cas d’échecExaminez la gestion de la session et de la déconnexion du fournisseur |
| Appareil précédemment touché | Preuve de réussiteLe même testeur réussit désormais sur le même appareil | En cas d’échecComparez le certificat, l’OS, le compte et la version réellement installée |
| Continuité du test | Preuve de réussiteLe testeur est toujours inscrit au test et vous avez consigné le correctif | En cas d’échecRéglez l’inscription séparément de la connexion |
Pourquoi la connexion fonctionne-t-elle en debug mais échoue-t-elle en test fermé?
L’application installée via Google Play peut avoir un signataire différent de l’APK que vous installez en local. Le guide d’authentification du client de Google rappelle que “Android Studio signe automatiquement votre application avec un certificat de debug.” Une version release que vous compilez vous-même utilise la clé configurée pour cette variante. Avec Play App Signing, votre clé d’importation signe le bundle que vous importez, et Google signe les APK que reçoivent vos testeurs avec la clé de signature d’application.
Ces clés ont des rôles différents, mais leurs valeurs ne sont pas toujours différentes: vous pouvez fournir votre propre clé de signature, et certaines configurations utilisent une même clé pour deux rôles. Comparez les empreintes réelles plutôt que les noms des clés.
| Copie installée | Certificat à vérifier | Première action |
|---|---|---|
| Installation Play en test interne, fermé, ouvert ou en production avec Play App Signing | Certificat à vérifierLe ou les certificats de signature d’application Play, sous Protected with Play | Première actionEnregistrez chaque SHA-1 Play concerné |
| Exécution debug depuis Android Studio | Certificat à vérifierLe certificat de debug de cette machine | Première actionEnregistrez ce SHA-1 pour l’ID d’application correspondant |
| APK release compilé sur votre machine | Certificat à vérifierLe certificat configuré pour cette variante release | Première actionNe supposez pas que “release” signifie le signataire de Google |
| Lien de partage interne d’applications | Certificat à vérifierLe certificat de test propre au partage interne d’applications | Première actionEnregistrez-le séparément si vos testeurs passent par ce chemin |
Le partage interne d’applications n’est pas le test interne
L’aide de Google sur le partage interne d’applications indique que “chaque APK est signé à nouveau avec ce certificat de test.” Vous le trouverez sous Test and release > Internal testing > Internal app sharing > Uploaders and testers > Internal test certificate. Les canaux de test interne et de test fermé utilisent à la place votre clé de signature d’application Play.
Lisez les empreintes vous-même
Pour les versions compilées sur votre machine, le rapport de signature Gradle affiche le SHA-1 et le SHA-256 de chaque variante, et keytool lit directement le keystore de debug (saisissez le mot de passe du keystore quand il est demandé):
./gradlew signingReport
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
Un rapport de signature local ne vous dit pas ce qui a signé la copie Play. Pour vérifier la version qui échoue elle-même, installez-la depuis le test fermé sur un appareil, récupérez-la avec adb et affichez ses certificats avec apksigner, dont Google indique qu’il affiche “des informations sur les certificats de signature de l’APK.” Remplacez le nom de package et utilisez le chemin affiché par la première commande:
adb shell pm path com.example.app
adb pull /data/app/.../base.apk failing-play.apk
apksigner verify --print-certs failing-play.apk
J’ai ajouté le SHA-1 et la connexion échoue toujours
Comparez le certificat de l’APK qui échoue, son ID d’application final et les ID client avant de modifier d’autres paramètres. Descendez cette échelle; chaque ligne écarte une couche.
| Vérification | Ce qu’il faut comparer | Décision |
|---|---|---|
| 1. Copie installée et canal | Ce qu’il faut comparerL’installation Play réelle du testeur par rapport à la version que vous vouliez tester | DécisionUn rapport de signature local ne prouve rien sur le signataire Play |
| 2. Certificat | Ce qu’il faut comparerLa sortie de apksigner verify --print-certs sur l’APK Play qui échoue, comparée à ce que vous avez enregistré |
DécisionEnregistrez chaque signataire nécessaire; conservez les anciennes entrées qui servent encore des utilisateurs installés |
| 3. ID d’application final | Ce qu’il faut comparerL’applicationId de la variante compilée, suffixes de flavor compris, par rapport au package enregistré | DécisionLe namespace source ne compte pas |
| 4. Projet et client Web | Ce qu’il faut comparerLe projet et l’ID client Web qu’utilisent réellement votre version release et votre backend | DécisionUne faute de frappe ici casse la connexion même avec les bonnes empreintes |
| 5. Fournisseur et clients présents | Ce qu’il faut comparerGoogle activé comme fournisseur, ainsi que les clients Android et Web qui le sous-tendent | DécisionSi un autre projet revendique la paire, voir la note sur les conflits ci-dessous |
| 6. Famille d’erreur | Ce qu’il faut comparerCode natif 10, annulation Credential Manager, jeton refusé par le backend ou redirection navigateur non concordante | DécisionChacune est une branche distincte; voir le tableau des erreurs |
| 7. Problème de release lié au framework | Ce qu’il faut comparerLa réduction des ressources, la version de bibliothèque résolue et l’initialisation | DécisionAppuyez-vous sur les changelogs et les correctifs confirmés, pas sur des mises à niveau ou des rétrogradations au hasard |
La ligne 4 n’a rien de théorique. Dans un cas Expo signalé en septembre 2026, l’ajout d’empreintes n’a rien changé; le correctif était une faute de frappe dans l’ID client accepté par le backend.
Plusieurs certificats de signature ou clés mises à niveau
Une même application peut nécessiter l’enregistrement de plusieurs identités de signature. L’aide actuelle de Google sur Play App Signing décrit une signature hybride avec trois clés de signature d’application et demande d’enregistrer les empreintes de chacune, et une application dont la clé de signature a été mise à niveau peut encore avoir des installations signées par une ancienne clé. Enregistrez les identités que portent réellement vos installations et ne supprimez pas les anciennes entrées qui fonctionnent encore. La rotation des clés dépasse le cadre de cet article, et ce n’est pas un correctif de connexion.
Un autre projet possède déjà ce package et ce SHA-1
L’aide de Firebase sur les conflits indique qu’une paire nom de package et SHA-1 “doit être unique dans l’ensemble des projets Firebase et Google Cloud.” Si la console refuse votre empreinte parce qu’un autre projet la détient, trouvez quel projet possède ce client OAuth avant de supprimer quoi que ce soit. L’assistance Google peut vous aider à localiser le conflit; ne supprimez pas de clients ou de projets actifs pour avancer à l’aveugle.
L’erreur 10 est-elle la même que 12500, 12501 ou canceled?
Non. Lisez l’erreur exacte et la bibliothèque qui l’a produite avant de traiter chaque échec de connexion comme un seul et même problème. La référence des codes d’état courants de Google définit DEVELOPER_ERROR = 10 comme “L’application est mal configurée.” Les autres codes ci-dessous proviennent de l’ancien SDK play-services-auth 21.6.0 de Google.
| Ce que vous voyez | Ce que cela signifie | Étape suivante |
|---|---|---|
ApiException: 10 ou DEVELOPER_ERROR |
Ce que cela signifieErreur de configuration de l’application | Étape suivanteComparez le signataire, le package, le projet et les ID client |
12500 |
Ce que cela signifieSIGN_IN_FAILED: “Un échec de connexion irrécupérable s’est produit” |
Étape suivanteLisez les journaux qui l’entourent; ne la traitez pas comme l’erreur 10 |
12501 |
Ce que cela signifieSIGN_IN_CANCELLED: “Action de connexion annulée” |
Étape suivanteDéterminez si l’utilisateur a annulé et quelle API l’a produite |
canceled dans Credential Manager ou Flutter |
Ce que cela signifieUne véritable annulation ou un problème de configuration | Étape suivanteExaminez les détails de l’exception et la configuration; laissez l’utilisateur faire une nouvelle tentative après votre diagnostic |
NoCredentialException |
Ce que cela signifieAucun identifiant n’a été renvoyé; ce n’est pas un diagnostic de certificat | Étape suivanteVérifiez la disponibilité du compte et la configuration de la requête en plus de l’enregistrement |
| Le jeton Google fonctionne, le backend le refuse | Ce que cela signifieUne étape postérieure à l’obtention de l’identifiant Google | Étape suivanteVérifiez l’audience et les ID client qu’accepte votre backend |
redirect_uri_mismatch |
Ce que cela signifieUne redirection OAuth dans le navigateur ne correspond à aucun URI autorisé | Étape suivanteCorrigez la configuration du callback pour ce parcours |
| “Item not found” (article introuvable) sur le lien Play | Ce que cela signifieUn problème d’installation ou d’éligibilité, pas de connexion | Étape suivanteSuivez les vérifications pour une application non disponible |
L’ancien Google Sign-In et Credential Manager
Les notes de version des services Play de Google mentionnent l’abandon des API Google Sign-In dans play-services-base le 16 avril 2024, et Google a annoncé le passage à Credential Manager le 11 septembre 2024. Les API ont ensuite été retirées de play-services-auth 22.0.0 le 26 août 2026 et de play-services-base 18.11.0 le 17 septembre 2026, avec la mention “Retrait des API liées à Google Sign-in.” Il s’agit d’un changement de SDK; cela ne fixe aucune date d’arrêt pour les applications déjà installées. Le nouveau code et les mises à niveau doivent suivre le guide de migration de Google.
Les deux API échouent différemment. Credential Manager n’a pas d’erreur 10; son guide de dépannage avertit qu’“un volume élevé d’"annulations" peut en réalité indiquer une mauvaise configuration.” Une annulation peut donc être une erreur de configuration ou une véritable annulation, et NoCredentialException est encore un autre signal.
Vérifications pour Flutter, React Native, Expo et Unity
Les vérifications d’identité native ci-dessus s’appliquent à tous les frameworks, mais la configuration, l’initialisation et la configuration de compilation diffèrent. Suivez la procédure de votre framework et la version de bibliothèque que votre application résout réellement.
| Framework | Vérifications spécifiques | Ne supposez pas |
|---|---|---|
| Flutter | Vérifications spécifiquesL’implémentation Android, google_sign_in_android, est passée à Credential Manager dans la version 7.0.0. Transmettez l’ID client Web comme serverClientId. Son changelog pour la version 7.2.16 indique qu’elle “empêche la ressource default_web_client_id d’être supprimée par les outils de réduction des ressources”, ce qui compte pour les échecs qui ne touchent que la release. |
Ne supposez pasQue chaque résultat canceled soit un problème de SHA, ou qu’une rétrogradation soit un correctif universel. |
| React Native | Vérifications spécifiquesIdentifiez quelle API de la bibliothèque vous utilisez, transmettez l’ID client Web comme webClientId, et vérifiez le véritable applicationId et l’APK qui échoue. Le guide de dépannage mentionne “la connexion ne fonctionne pas lors du téléchargement depuis le Play Store” et propose une commande de vérification de la configuration (ci-dessous). |
Ne supposez pasQu’un ticket fermé dans l’outil de suivi prouve une réparation. |
| Expo | Vérifications spécifiquesLa connexion Google native nécessite un build de développement ou personnalisé; le guide Expo indique que “ces bibliothèques ne peuvent pas être utilisées dans Expo Go, car elles nécessitent du code natif personnalisé.” Gardez le certificat de signature EAS ou local distinct du certificat de signature d’application Play. | Ne supposez pasQu’Expo Go reproduise le parcours de release, ou qu’une recompilation corrige un mauvais ID client backend. |
| Unity | Vérifications spécifiquesDéterminez si vous utilisez Firebase Authentication ou Unity Authentication, obtenez le jeton d’ID Google via l’intégration de plateforme prise en charge, puis échangez-le auprès de ce backend (guide Unity de Firebase). L’ancien exemple de connexion Unity de Google a été archivé le 19 avril 2026. | Ne supposez pasQue la connexion Play Jeux et la connexion avec un compte Google soient la même intégration. |
Pour React Native, les mainteneurs de la bibliothèque fournissent une vérification de configuration que vous pouvez lancer depuis la racine du projet:
npx @react-native-google-signin/config-doctor
Qu’est-ce qui change pour Supabase, Facebook, Apple ou Auth0?
Le fournisseur et le parcours de connexion déterminent quel certificat, quel ID client ou quel callback doit correspondre. Un SHA-1 Google est la réponse pour la connexion Google native; pour d’autres fournisseurs, il peut s’agir du mauvais hash, du mauvais format, ou d’un élément sans rapport.
| Fournisseur ou parcours | Ce qui doit correspondre | Où le configurer |
|---|---|---|
| Google natif avec Firebase | Ce qui doit correspondrePackage installé et SHA-1, client Web, Google activé comme fournisseur | Où le configurerEmpreintes dans les Project settings de Firebase, plus Authentication |
| Google natif avec Supabase | Ce qui doit correspondreL’identité Android native et l’ID client Web; le guide de Supabase indique que “l’ID client Web est celui utilisé dans votre application Android.” | Où le configurerClients Google Android et Web, puis les paramètres du fournisseur Google dans Supabase |
| OAuth Supabase dans le navigateur | Ce qui doit correspondreLe client Web, le callback Supabase et le lien de retour de votre application | Où le configurerURI de redirection autorisés dans Google et paramètres de redirection Supabase; un correctif SHA ne s’applique pas |
| Facebook sur Android | Ce qui doit correspondreUn hash de clé en Base64 issu des octets du SHA-1 du certificat de signature, et non l’hexadécimal séparé par des deux-points | Où le configurerParamètres de l’application Facebook, hashs de clé Android (chemin tel que documenté dans le guide Facebook d’Expo) |
| Connexion Web Apple sur Android | Ce qui doit correspondreLe Services ID, le domaine et l’URL de retour | Où le configurerConfiguration Web de Sign in with Apple chez Apple; pas le mécanisme DEVELOPER_ERROR de Google |
| Apple via Firebase sur Android | Ce qui doit correspondreLa configuration Apple plus le SHA-1 de l’application | Où le configurerGuide Apple de Firebase: “Indiquez l’empreinte SHA-1 de votre application si ce n’est pas déjà fait.” |
| Auth0 sur Android | Ce qui doit correspondreURL de callback autorisées et schéma de l’application; identité App Link le cas échéant | Où le configurerParamètres de l’application Auth0; son readme du SDK Android utilise des hashs de clé SHA-256 pour la configuration de ses App Links |
| Authentification par téléphone Firebase | Ce qui doit correspondreSHA-256 pour Play Integrity, SHA-1 pour la solution de secours reCAPTCHA | Où le configurerAuthentification par téléphone Firebase: un parcours distinct de la connexion Google |
Ne déplacez pas la connexion dans une WebView
Faire passer la connexion Google par une WebView intégrée n’est pas une solution de contournement. Les règles OAuth 2.0 de Google précisent que les développeurs “ne doivent pas diriger une demande d’autorisation Google OAuth 2.0 vers un user-agent intégré.”
Que doivent envoyer les testeurs au développeur?
Un rapport utile identifie la version Play qui échoue et le moment exact où la connexion s’arrête. Un testeur ne peut pas réparer un enregistrement OAuth en réessayant: son rôle est d’apporter des preuves, pas d’insister. Copiez ce modèle et envoyez-le à vos testeurs:
Application et lien de test Play:
Version ou build de l’application installée:
Installée depuis: test fermé Play / autre moyen
Appareil et version d’Android:
Date, heure et fuseau horaire:
Texte exact de l’erreur ou capture d’écran masquée:
Où cela s’est arrêté: avant le sélecteur de compte / après le choix d’un compte / après le retour dans l’application
Une autre méthode de connexion a-t-elle permis d’ouvrir l’application?
Résultat et version du nouveau test:
Demandez aux testeurs de rester inscrits au test pendant que vous corrigez le problème. Ne demandez jamais de mots de passe, de jetons OAuth, de clés privées ni d’accès à la Play Console. Après votre modification, demandez au même testeur d’ouvrir une fonctionnalité qui exige une connexion, puis de se déconnecter et de se reconnecter, et de noter la version et le résultat.
L’erreur 10 affecte-t-elle mon test fermé ou l’accès en production?
Une erreur de configuration de la connexion est distincte de l’inscription. L’erreur 10 n’est pas un code de refus lié aux règles Play, et aucune règle Google que nous avons trouvée n’indique qu’elle remet à zéro la période d’inscription de vos testeurs. La page sur les exigences de test de Google vous encourage à améliorer l’application pendant le test fermé: gardez donc vos testeurs inscrits et déployez le correctif dans le même canal fermé. C’est une lecture des règles publiées, pas une promesse valable dans tous les cas.
Une connexion cassée reste un problème. Le règlement sur les fonctionnalités de Google Play indique: “Nous n’autorisons pas les applications qui plantent, forcent la fermeture, se figent ou présentent tout autre dysfonctionnement”, et un mur de connexion empêche les testeurs d’accéder aux fonctionnalités qu’ils sont censés tester. Corrigez-le avant de demander un accès en production, et fournissez aux examinateurs des identifiants de connexion qui fonctionnent. Si un examen a déjà rendu sa réponse, consultez le refus pour Broken Functionality.
Pour rappel: les comptes de développeur personnels créés après le 13 novembre 2023 doivent avoir au moins 12 testeurs inscrits sans interruption pendant 14 jours avant de demander un accès en production pour l’application concernée. Une fois la demande envoyée, Google indique que “l’examen prend généralement sept jours ou moins, mais peut parfois prendre plus de temps.” S’il manque des testeurs dans le décompte, vérifiez comment ils ont été invités avant de toucher à la connexion.
Besoin de vrais testeurs pour les 14 jours?
Les testeurs ne peuvent pas réparer un enregistrement OAuth: faites d’abord fonctionner la connexion. Une fois que c’est le cas, PrimeTestLab fournit 12+ vrais testeurs qui installent votre version Play sur de vrais téléphones Android et restent inscrits pendant les 14 jours complets, dès $19.99 (plus 5% de frais de service). Si Google n’accorde pas l’accès en production après le test complet, vous choisissez entre un nouveau test gratuit et un remboursement intégral. Découvrez comment fonctionne le test fermé avec 12 testeurs.
Questions fréquentes
Pourquoi Google Sign-In fonctionne-t-il en debug mais pas en test fermé?
Votre APK de debug et l’application téléchargée depuis Google Play peuvent être signés avec des certificats différents: enregistrer l’empreinte de debug ne configure donc pas la version Play. Commencez par le SHA-1 de la signature d’application Play, puis vérifiez le nom de package final de la version release et les ID client que l’application utilise réellement.
Où trouver maintenant le SHA-1 de Play App Signing?
Ouvrez la page Protected with Play de votre application dans la Play Console. L’aide de Google décrit Play Store distribution, puis Go to Play app signing; d’autres textes actuels de Google parlent de Play Store protection et de Manage Play app signing. Ouvrez la section App signing key certificate et copiez le SHA-1, en vérifiant les éventuelles clés supplémentaires affichées pour votre application.
Faut-il un SHA-1 ou un SHA-256 pour Google Sign-In?
Le client OAuth Android de Google identifie votre application par son nom de package et l’empreinte SHA-1 de son certificat de signature, et le SHA-256 ne remplace pas ce champ. D’autres services ont leurs propres besoins: l’authentification par téléphone Firebase utilise le SHA-256 pour Play Integrity et le SHA-1 pour sa solution de secours reCAPTCHA. Configurez chaque service pour le parcours qu’utilise votre application.
J’ai déjà ajouté le SHA-1. Que dois-je vérifier ensuite?
Vérifiez qu’il appartient bien à l’application installée depuis Play, et non à votre clé d’importation ou de debug. Comparez ensuite l’ID d’application final, le projet Firebase ou Cloud et l’ID client Web. Si votre application a plusieurs certificats de signature, vérifiez-les aussi. Une faute de frappe dans l’ID client accepté par le backend peut casser la connexion même lorsque les empreintes sont correctes.
Dois-je importer un autre AAB après avoir ajouté une empreinte?
Pas forcément. Des développeurs signalent qu’un correctif portant uniquement sur l’enregistrement dans Firebase ou Google Cloud a fonctionné avec l’application déjà installée. Un ID client, un fichier de configuration, du code ou une dépendance modifiés doivent parvenir aux testeurs dans une nouvelle version. Vérifiez ce que vous avez modifié, puis contrôlez l’installation Play réelle au lieu de recompiler encore et encore sans diagnostic.
Combien de temps faut-il pour qu’une nouvelle empreinte fonctionne?
Google ne publie aucun délai de propagation propre aux empreintes, et les discussions de développeurs que nous avons examinées n’en ont mesuré aucun. Enregistrez la bonne configuration et réessayez. Si l’échec persiste, vérifiez le certificat installé et les paramètres du client plutôt que d’attendre un nombre d’heures fixe, car attendre ne répare pas une non-concordance.
Pourquoi est-il indiqué canceled alors que je n’ai pas annulé?
Certaines intégrations de Credential Manager et de frameworks signalent un problème de configuration ou d’autorisation comme une annulation, même si une annulation peut aussi être réelle. Notez le type et le message de l’exception, consultez le guide de dépannage de votre framework, et distinguez l’API actuelle de l’ancien statut 12501 SIGN_IN_CANCELLED avant de modifier les paramètres.
L’ID client Android est-il celui que je mets dans serverClientId?
Non. Dans les intégrations Google natives documentées, serverClientId ou webClientId est le client OAuth de l’application Web utilisé pour la demande de jeton. Le client Android, lui, enregistre votre package et votre certificat de signature. Configurez les deux, et vérifiez que votre backend accepte l’audience de jeton prévue plutôt que d’échanger les ID client au hasard.
L’erreur 10 fait-elle redémarrer mon test fermé de 14 jours?
Aucune règle Google que nous avons trouvée n’indique que cette erreur remet à zéro la période d’inscription, et Google encourage les améliorations pendant le test fermé: gardez donc vos testeurs inscrits et corrigez le canal existant. Ce n’est pas pour autant le signe que l’application est prête: un mur de connexion peut empêcher un test utile et laisser un problème de fonctionnement que vous devez corriger avant de faire votre demande.
Que dois-je demander à un testeur de m’envoyer?
Demandez la version installée, le lien de test Play, l’appareil et la version d’Android, l’erreur exacte et l’étape où la connexion s’arrête. Une capture d’écran masquée ou un court enregistrement aide. Après votre correctif, demandez au même testeur d’utiliser une fonctionnalité qui exige une connexion, puis de se déconnecter et de se reconnecter, sans partager aucun identifiant.
L’essentiel
En bref
L’erreur 10 de Google Sign-In signifie que l’application est mal configurée, et lorsque seule la copie Play échoue, le certificat de signature est la première chose à vérifier. Copiez le SHA-1 de la clé de signature d’application depuis Protected with Play, enregistrez-le avec le nom de package final de la version dans le même projet Firebase ou Google Cloud que celui de votre application, gardez l’ID client Web dans serverClientId, et testez à nouveau la version installée par vos testeurs, y compris une deuxième connexion. Si l’échec persiste, comparez le certificat de l’APK installé, l’ID d’application et les ID client avant de modifier quoi que ce soit d’autre.
Sources vérifiées le 16 octobre 2026
Les libellés des menus de la Play Console et de Firebase sont les informations de cette page qui changent le plus vite. Si un chemin indiqué plus haut ne correspond plus à votre console, cherchez la signature d’application Play sous Protected with Play, et les empreintes sous votre application Android dans les Project settings de Firebase.