débogage - sha1 in android studio




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

Je suis passé d’ 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, c’était 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 sur ce link 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 d'accès au bac Java à partir de ce lien et, malheureusement, je n'ai pas pu trouver mon empreinte. Il dit 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 d'Android Studio comme si cela était très facile dans 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?


J'ai trouvé un processus très facile pour trouver votre empreinte digitale MD5, SHA-1 avec 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 de Gradle. (Votre projet -> Tâches -> Android -> signature du rapport)
  4. Exécuter. (En utilisant un double-clic ou Ctrl + Maj + F10)
  5. Dans la fenêtre Exécuter, vous trouverez toutes les informations.

Cela fonctionne uniquement pour le mode débogage. En mode de relâchement, je ne vois pas sha-1. Voici le résultat de la 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


  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


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

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

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 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:


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

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.


Je veux ajouter une chose avec la réponse donnée par Softcoder . J'ai vu certaines personnes ne pouvaient pas donner leur chemin debug.keystore correctement sur la 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.


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

  1. Cliquez sur votre forfait et choisissez Nouveau -> 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 .


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

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.

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


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

Accédez à votre répertoire Java bin via la commande:

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 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) . Sinon, si vous ne savez pas quel nom de dossier vous avez trouvé, ouvrez le dossier Java et vous verrez quel est le nom du dossier, mais vous devez être dans votre dossier BIN, puis exécuter cette commande. Aujourd'hui, j'ai obtenu ma valeur SHA1 dans une fenêtre de commande cmd à l'aide de la procédure ci-dessus.

INSTANTANÉ:


Pour Windows 10 , à 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 "%USER_PROFILE%"/.android/debug.keystore débogage se trouve généralement dans "%USER_PROFILE%"/.android/debug.keystore .


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 de pouvoir 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 à l'emplacement où vous avez stocké votre magasin de clés, faites glisser votre clé de voûte et déposez-la après le -keystore de -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. Appuyez sur Entrée et entrez le mot de passe :)

  6. Lorsque vous entrez le mot de passe, le terminal n'indique pas qu'il reçoit les entrées au clavier, mais c'est le cas. Mettez le mot de passe, puis appuyez sur Entrée, même si vous ne voyez pas le mot de passe.


Si vous avez Android Studio, c'est très simple. Créez simplement une MapActivity à l'aide d'Android Studio. 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:


Si vous utilisez Android Studio, vous pouvez obtenir rapidement les empreintes digitales des certificats SHA-1 et MD5 (débogage, édition ... tous les types de construction !!) via les tâches Gradle :

signatureReport

Les certificats SHA-1 et MD5 sont présentés dans le journal des messages .

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 dans l'application Gradle :

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 .)


Utilisez les instructions du gestionnaire d’API en utilisant 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


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

Les moyens les plus simples jamais:

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 la barre de niveau )
  4. Cliquez sur Actualiser (Cliquez sur Actualiser dans la barre de niveaux pour afficher la liste des scripts de niveaux de votre projet)
  5. Cliquez sur votre projet ( liste du formulaire Votre nom de projet (racine))
  6. Cliquez sur tâches
  7. Cliquez sur Android
  8. Double-cliquez sur signatureReport (vous obtiendrez SHA1 et MD5 dans la barre d' exécution (parfois dans Gradle Console))
  9. Sélectionnez le module d' application dans la liste déroulante de sélection de module pour exécuter ou déboguer votre application.

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

2. Travailler avec l'activité Google Maps :

  1. Ouvrir Android Studio
  2. Ouvrez votre projet
  3. Cliquez sur le menu Fichier -> Sélectionnez Nouveau -> Cliquez sur Google -> Sélectionnez l'activité de Google Maps
  4. Une boîte de 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 (à la ligne numéro 10 du fichier XML)

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

Mise à jour Android Studio V 2.2

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

Solution:

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

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

Terminé.


Simple, appelez cette méthode dans votre écran de démarrage: hash () et getCertificateSHA1Fingerprint (), puis les clés seraient 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.


[Mis à jour 2017]

Étape 1: En haut à droite d'Android Studio Cliquez sur l'option Gradule.

É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)

Étape 3: Cliquez sur l’option de la console Gradle au bas d’Android Studio pour afficher votre clé SHA1.

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

Comme ça.

Étape 5: codage heureux !!





android-studio