web-dev-qa-db-fra.com

Comment obtenir le certificat d'empreinte digitale SHA-1 dans Android Studio pour le mode de débogage?

Je suis passé de Eclipse à Android Studio . Maintenant, j'essaie de travailler sur mon application cartographique. J'ai donc besoin de mon numéro de certificat d'empreinte digitale SHA-1.

Lorsque j'utilisais Eclipse, il se trouvait juste sous Windows -> Préférences -> Android -> Construire . Mais dans Android Studio, je ne pouvais trouver aucune option de ce type afin de trouver facilement l'empreinte digitale. J'utilise Windows. J'ai lu de ceci lien que:

Android Studio signe automatiquement votre application en mode débogage lorsque vous exécutez ou déboguez votre projet à partir de l'EDI.

J'ai donc essayé de l'exécuter en ligne de commande après avoir défini mon chemin Java bin de ce lien et, malheureusement, je n'ai pas pu trouver mon empreinte digitale. Cela signifie que c'est une option illégale .

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android

Existe-t-il un moyen de retrouver l'empreinte SHA-1 à partir de Android Studio comme si c'était très facile avec Eclipse? Comme je suis novice dans Android Studio, quel est le processus complet pour le trouver?

Une autre chose que je veux ajouter, c’est que mon Eclipse génère l’empreinte SHA-1. Auparavant, mon application était enregistrée sur cette empreinte dans la console de développement Google et j’y travaillais avec cette clé d’API. Est-ce que la même clé API peut être travaillée sur ce projet dans Android Studio?

434
Setu Kumar Basak

Les moyens les plus simples:

Mise à jour ajoutée pour Android Studio V 2.2 à la dernière étape

Il y a deux façons de faire ça.

1. Manière plus rapide :

  1. Ouvrir Android Studio
  2. Ouvrez votre projet
  3. Cliquez sur Gradle (dans le panneau de droite, vous verrez Barre de niveau ).
  4. Cliquez sur Actualiser (Cliquez sur Actualiser à partir de Barre de niveau , vous verrez la liste Graduez les scripts de votre projet)
  5. Cliquez sur votre projet (formulaire Votre nom de projet liste (racine))
  6. Cliquez sur tâches
  7. Cliquez sur Android
  8. Double-cliquez sur signatureReport (vous obtiendrez SHA1 et MD5 dans Barre d'exécution (parfois dans la console Gradle)
  9. Sélectionnez app module dans le menu déroulant pour exécuter ou déboguer votre application.

Vérifiez la capture d'écran ci-dessous:

enter image description here

2. Travailler avec l'activité Google Maps :

  1. Ouvrir Android Studio
  2. Ouvrez votre projet
  3. Cliquez sur le menu Fichier -> Sélectionner Nouveau -> Cliquez sur Google -> Sélectionnez Activité Google Maps
  4. Un dialogue apparaîtrait -> Cliquez sur Terminer
  5. Android Studio générerait automatiquement un fichier XML nommé avec google_maps_api.xml
  6. Vous obtiendrez la clé de débogage SHA1 ici (à le numéro de ligne 10 du Fichier XML)

Vérifiez la capture d'écran ci-dessous:

Enter image description here

Mise à jour Android Studio V 2.2

Il y a un problème avec l'exécution .

Solution:

  • Cliquez sur Basculez l'exécution des tâches/le mode texte depuis la barre d'exécution

Vérifiez la capture d'écran ci-dessous:

enter image description here

Fait.

1123
Hiren Patel

Mon problème est le même car j'ai également déplacé mon Google Maps projet de Eclipse vers . ) Android Studio . J'ai résolu mon problème en suivant ceci:

Accédez à votre répertoire Java bin à l'aide de la commande suivante:

C:\Program Files\Java\jdk1.7.0_71\bin>

Maintenant, tapez la commande ci-dessous dans la fenêtre de commande (CMD.EXE):

keytool -list -v -keystore c:\users\your_user_name\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android

Exemple:

keytool -list -v -keystore c:\users\James\.Android\debug.keystore -alias androiddebugkey -storepass Android -keypass Android

Ou vous pouvez simplement écrire ceci dans cmd si vous ne connaissez pas le nom d'utilisateur:

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android

Et vous obtiendrez le SHA1.

Ensuite, j'ai créé une nouvelle clé à partir de https://code.google.com/apis/console en raison de la modification du nom de mon package. Cette clé a ensuite été utilisée dans mon application. Ça fonctionne bien.

Assurez-vous d'être dans le dossier BIN de jdkX.X.X_XX (mon nom de dossier est jdk1.7.0 _71) , ou si vous ne savez pas quel nom de dossier vous avez trouvé, ouvrez-le en ouvrant le dossier Java et vous verrez le nom du dossier, mais vous devez être dans votre dossier BIN et ensuite exécuter cette commande. Aujourd'hui, j'ai obtenu ma valeur SHA1 dans une fenêtre de commande cmd par la procédure ci-dessus.

INSTANTANÉ:

Enter image description here

288
Jamil

Pour Mac, cela a parfaitement fonctionné:

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
116
JoeNCA

Je viens de trouver le cas d'obtenir SHA-1 dans Android Studio:

  1. Cliquez sur votre forfait et choisissez Nouvea -> Google -> Activité Google Maps
  2. Android Studio vous redirige vers google_maps_api.xml

Et vous verrez tout ce dont vous avez besoin pour obtenir google_maps_key.

Image

112
Stanislav Bondar

La meilleure solution pour générer une clé SHA-1 pour Android provient de Android Studio .

Cliquez sur Gradle à l'extrême droite:

Cliquez sur l'icône d'actualisation et vous verrez le nom de l'application:

Cliquez sur Tâches -> Rapport -> Rapport de signature :

Recherchez la clé SHA-1 dans la partie inférieure de la console:

37
Ismaran Duwadi

[Mis à jour en 2017]

Étape 1: En haut, à droite du Android Studio, cliquez sur l’option Dégradé.

Android Studio Click On Gradle option

Étape 2:

- Cliquez sur Actualiser (Cliquez sur Actualiser à partir de la barre de niveaux, vous verrez la liste des scripts Gradle de votre projet).

- Cliquez sur Votre projet (Liste du formulaire Votre nom de projet (racine))

- Cliquez sur tâches

- Cliquez sur Android

- Double-cliquez sur signatureReport (vous obtiendrez SHA1 et MD5 dans Gradle Console/Run Bar)

enter image description here

Étape 3: Cliquez sur l'option Gradle Console présente au bas de Android Studio pour voir votre clé SHA1.

enter image description here

Étape 4: Maintenant, vous avez la clé SHA mais vous ne pouvez pas exécuter votre projet. C'est pourquoi vous devez modifier votre configuration en application. mode. Voir l'image ci-dessous.

enter image description here

Comme ça.

enter image description here

Étape 5: codage heureux !!

33
Dinesh Sunny

je vais avec @Hiren Patel répondre mais légèrement changer dans Android studio 2.2

enter image description here

21
Arpit Patel

Pour Linux et Mac

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android 
17
Vicky

J'ai directement utilisé la commande suivante de mon Mac en utilisant le terminal. J'ai SHA1 Finger. C'est la commande:

keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
11
Hanuman
  1. Cliquez sur l'icône Gradle dans le volet de droite.
  2. Cliquez sur Nom du projet racine.
  3. Cliquez sur les tâches
  4. Cliquez sur Android
  5. Cliquez signatureReport
  6. dans le volet inférieur où vous voyez le rapport d'exécution
  7. Cliquez sur "Basculer les tâches Execytions/mode texte"
  8. vous pouvez voir le sha-1

Android Studio SHA-1

9
Sadegh-khan

Pour obtenir SHA1 pour un fichier de clés de production:

  1. Construire -> Générer un APK signé ...

  2. Créez un magasin de clés avec mot de passe et suivez les étapes

  3. Accédez à votre Mac/Bibliothèque/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin et faites glisser le dossier bin vers la commande terminal après le cd pour le pointer dessus afin que vous puissiez utiliser l'outil keytool. Donc, dans le terminal, écrivez cd (déplacez le bac ici), puis appuyez sur Entrée.

  4. Ensuite, copiez et collez ceci dans le terminal:

    keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v
    

    Effacez mon chemin et allez où vous avez stocké votre magasin de clés et faites glisser votre clé de voûte et déposez-la après -keystore dans la ligne de commande afin que le chemin soit créé.

    En outre, effacez Your_keystore_AliaseName pour indiquer le nom de clé d’alias que vous avez utilisé lors de sa création.

  5. Presse Enter et entrez le mot de passe :)

  6. Lorsque vous entrez le mot de passe, le terminal n’indiquera pas qu’il reçoit des entrées au clavier, c’est le cas. Mettez le mot de passe, puis appuyez sur Enter même si vous ne voyez pas le mot de passe est saisi.

8
fullMoon

Si vous utilisez Android Studio, vous pouvez obtenir les certificats SHA-1 et MD5 (débogage, version ... tous les types de construction !!) défilent rapidement Tâches graduées :

signatureReport

Les certificats SHA-1 et MD5 sont présentés dans Messages Logs .

Le plug-in Android (configuré dans l'application Gradle) crée un mode de débogage par défaut.

com.Android.application

Fichier d'itinéraire vers le magasin de clés:

HOME/.Android/debug.keystore

Je recommande d'attacher debug.keystore à build.gradle. Pour ce faire, placez un fichier, debug.keystore, dans un dossier de l'application, puis ajoutez SigningConfigs in Gradle app:

apply plugin: 'com.Android.application'

    Android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "Android"
                keyAlias "androiddebugkey"
                keyPassword "Android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "Android"
                keyAlias "androiddebugkey"
                keyPassword "Android"
            }
        }
        ........
    }

Extra: Si vous voulez créer pour la publication, placez un fichier, release.keystore, dans un dossier d'application. (Cet exemple utilise le même debug.keystore.)

7
SergioLucas

C'est très très facile dans Gnu/Linux - Mac - Windows

D'abord: - copiez cette commande

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

Deuxième étape: Maintenant, copiez et collez la commande dans le terminal le Android Studio enter image description here

Résultat!

enter image description here

Bonne chance !!

7
David Hackro

Si vous avez Android Studio , c'est très simple. Créez simplement une MapActivity en utilisant Android Studio et après l'avoir créée, allez dans google_maps_api.xml. Il y aura là un lien donné dans les commentaires. Si vous le collez dans votre navigateur, il vous demandera quelques détails et ensuite votre API sera générée. Il n'est pas nécessaire d'utiliser keytool et tout.

Capture d'écran:

Enter image description here

6
Rizwan Ahmed

Cela a fonctionné dans mon cas: Utilisez % USERPROFILE% au lieu de donner le fichier .keystore du chemin d'accès stocké automatiquement dans ce chemin C: Utilisateurs/nom d'utilisateur/.Android:

keytool -list -v -keystore "%USERPROFILE%\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
5
KCN

Utilisez une commande simple:

keytool -exportcert -keystore chemin d'accès au keystore -list-production-production -v

et vous obtiendrez la clé SHA1.

5
Sangeeta

Pour Windows 1 , à partir du terminal Android Studio :

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.Android/debug.keystore -list -v

Remarque: Pour le debug.keystore, le mot de passe est "Android". Le fichier de clés de débogage est généralement situé à l'emplacement "%USER_PROFILE%"/.Android/debug.keystore.

4
Javad Jafari

J'ai trouvé un processus très facile pour trouver votre empreinte MD5, SHA-1 en utilisant Android Studio.

  1. Exécutez votre projet
  2. Aller au menu Gradle (Menu: Affichage -> Fenêtres d’outils -> Gradier)
  3. Allez dans 'signatureReport' dans la fenêtre Gradle (Votre projet -> Tâches -> Android -> signatureReport)
  4. Exécuter. (En utilisant un double-clic ou Ctrl + Shift + F10)
  5. Dans la fenêtre Exécuter, vous trouverez toutes les informations.

Cela fonctionne uniquement pour le mode débogage. En mode relâchement, je ne vois pas sha-1. Voici le résultat de gradlew signingReport

Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.Android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------

Donc, je dois utiliser keytool pour obtenir sha-1. Voici le document officiel de Firebase:

Get_sha-1_for_release

4
Md Sufi Khan

J'ai fait comme ça:

Étape 1: Allez dans ce dossier

On Mac: /Users/<username>/.Android/

On Windows: C:\Documents and Settings\<username>\.Android\

On Linux: ~/.Android/

Étape 2: Exécutez cette ligne de commande:

keytool -list -v -keystore debug.keystore -storepass Android

Vous verrez la clé SHA-1.

4
Son Nguyen Thanh

Je veux ajouter une chose avec la réponse donnée par Softcoder . J'ai vu certaines personnes ne pouvaient pas donner correctement leur chemin debug.keystore sur le command line. Ils constatent qu'ils exécutent exactement le processus accepté ci-dessus, mais cela ne fonctionne pas. À ce stade, essayez de faire glisser le debug.keystore et déposez-le sur la ligne de commande. Cela aidera si la réponse acceptée ne fonctionne pas pour vous. Faites le processus complet sans aucune hésitation. C'était une bonne réponse.

4
Setu Kumar Basak

Cliquez sur l'icône Gradle dans le panneau de droite, puis cliquez sur la (racine).

Tâches> Android> signatureRapport

Ensuite, le script Gradle sera exécuté et vous verrez vos clés.

3
Balman Rawat

Utilisez les instructions du gestionnaire d’API à l’aide de keytool:

Obtenez le nom du package à partir de votre fichier AndroidManifest.xml. Puis utilisez la commande suivante pour obtenir l’empreinte digitale:

keytool -list -v -keystore mystore.keystore

2
Jorgesys
  • Aller dans Fichier> Structure du projet Sélectionnez app ou mobile quel que soit le nom que vous avez donné à Modules

  • Choisissez l'onglet Signing.

  • Vous pouvez ajouter un certificat en cliquant sur le bouton + bouton.

1
Kabir

Vous pouvez utiliser la commande suivante et changer AJAY SUNDRIYAL avec votre nom de système. Ceci est uniquement pour votre debug.keystore.Cela fonctionnera pour vous.

C:\Program Files\Java\jdk1.8.0_91\bin>keytool -list -v -keystore "c:\users\AJAY SUNDRIYAL\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
1
SANJAY GUPTA

Si vous avez besoin de SHA1 pour Google Maps , vous pouvez simplement voir votre journal des erreurs dans LogCat .

1
Anton Smirnov

Cela a fonctionné pour moi:

keytool -exportcert -alias androiddebugkey -keystore

Placez le chemin de stockage de clés de production ou de production ici, comme C:\utilisateurs\votre_utilisateur.Android\debug.keystore -list -v

Assurez-vous que vous vous trouvez déjà dans le répertoire Java\jdk*\bin dans une fenêtre de commande ou de terminal.

Ensuite, utilisez Android comme mot de passe.

Parfois, les ressources Web peuvent être trompeuses. Ce sont ceux qui travaillent:

1
Jenia

Lors de la création d'un nouveau "projet Google Maps", dans Android Studio V 1.5.1, le dernier écran ouvre le fichier google_maps_api.xml et affiche l'écran avec les instructions suivantes:

Ressources:

TODO: Avant d’exécuter votre application, vous avez besoin d’une clé d’API Google Maps.

Pour en obtenir un, suivez ce lien, suivez les instructions et appuyez sur "Créer" à la fin:

https://console.developers.google.com/flows/enableapi?apiid=maps_Android_backend&keyType=CLIENT_SIDE_Android&r= VOTRE SHA-1 + VOTRE NOM DU PAQUET

Vous pouvez également ajouter vos informations d'identification à une clé existante, à l'aide de cette ligne:
VOTRE SHA-1: VOTRE NOM DU FORFAIT

Sinon, suivez les instructions ici:
https://developers.google.com/maps/documentation/Android/start#get-key

Une fois que vous avez votre clé (elle commence par "AIza"), remplacez la chaîne "google_maps_key" dans ce fichier.
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

Pour obtenir VOTRE GOOGLE MAPS KEY , copiez et collez le lien URL indiqué dans votre navigateur et suivez les instructions ci-dessus au moment de la créer la nouvelle application. Les SHA-1 et Package names sont déjà dans le lien indiqué, vous n'avez donc pas besoin de les connaître. Ils figureront cependant dans votre projet dans le fichier resources>Values>google_maps_api.xml, qui est rempli lorsque vous suivez les instructions de création du projet.

1
Anthony

Le chemin du magasin de clés est entre guillemets. Cela fonctionne bien.

keytool -list -v -keystore "C:\Users\App innovation\.Android\debug.keystore" -alias androiddebugkey -storepass Android -keypass Android
1
Happy Singh

Première étape Allez votre lecteur C ouvrir le fichier programme -> Ouvrir Java Dossier -> Ouvrir le dossier Bin et DoubleClick sur jarsigner.exe

Puis ouvrez Cmd

Allez dans C:\Program Files\Java\jdk1.8.0_191\bin Puis entrez puis Lancez C:\Program Files\Java\jdk1.8.0_191\bin> keytool -list -keystore "F:\BTG MISE À JOUR SUPÉRIEURE\Beyond_The_Game. jks "

Entrez JUST Show Entrez le mot de passe Kaystoer ***** entrez votre mot de passe entrez enfin Votre release SHA clé Vous permettant de vous remercier enter image description here

0
Rachit Mishra

Simple, appelez cette méthode dans votre écran de démarrage: hash () et getCertificateSHA1Fingerprint (), puis les clés seront visibles dans le journal

private void hash() {


            PackageInfo info;
            try {

                info = getPackageManager().getPackageInfo(
                        this.getPackageName(), PackageManager.GET_SIGNATURES);

                for (Android.content.pm.Signature signature : info.signatures) {
                    MessageDigest md;
                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("sagar sha key", md.toString());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("sagar Hash key", something);
                    System.out.println("Hash key" + something);
                }

            } catch (PackageManager.NameNotFoundException e1) {
                Log.e("name not found", e1.toString());
            } catch (NoSuchAlgorithmException e) {
                Log.e("no such an algorithm", e.toString());
            } catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }

        private void getCertificateSHA1Fingerprint() {
            PackageManager pm = this.getPackageManager();
            String packageName = this.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
            PackageInfo packageInfo = null;
            try {
                packageInfo = pm.getPackageInfo(packageName, flags);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
            Signature[] signatures = packageInfo.signatures;
            byte[] cert = signatures[0].toByteArray();
            InputStream input = new ByteArrayInputStream(cert);
            CertificateFactory cf = null;
            try {
                cf = CertificateFactory.getInstance("X509");
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            X509Certificate c = null;
            try {
                c = (X509Certificate) cf.generateCertificate(input);
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            String hexString = "";
            try {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                byte[] publicKey = md.digest(c.getEncoded());
                Log.e("sagar SHA",byte2HexFormatted(publicKey));
            } catch (NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (CertificateEncodingException e) {
                e.printStackTrace();
            }
        }

        public static String byte2HexFormatted(byte[] arr) {
            StringBuilder str = new StringBuilder(arr.length * 2);
            for (int i = 0; i < arr.length; i++) {
                String h = Integer.toHexString(arr[i]);
                int l = h.length();
                if (l == 1) h = "0" + h;
                if (l > 2) h = h.substring(l - 2, l);
                str.append(h.toUpperCase());
                if (i < (arr.length - 1)) str.append(':');
            }
            return str.toString();
        }

Merci.

0
S G

Le moyen le plus simple d'obtenir l'empreinte digitale consiste à passer d'une application à un rapport signé en cliquant sur le menu déroulant, puis sur Construire.

enter image description here

Ensuite, vous pourrez voir l'empreinte digitale sha1 dans le volet inférieur où vous voyez le rapport de débogage et le suivi de la pile. N.B n'oubliez pas de revenir à l'application lorsque vous souhaitez exécuter votre application sur un appareil ou un émulateur.

0
The_Martian