Как получить сертификат отпечатка пальца SHA-1 в Android Studio для режима отладки?


493

Я перешел с Eclipse на Android Studio . Сейчас я пытаюсь работать над приложением Map. Поэтому мне нужен мой номер сертификата отпечатка пальца SHA-1.

Когда я использовал Eclipse, он был прямо под Windows -> Настройки -> Android -> Сборка . Но в Android Studio я не смог найти ни одного варианта, подобного этому, чтобы можно было легко найти отпечаток пальца. Я использую Windows. Я прочитал по этой ссылке, что:

Android Studio автоматически подписывает ваше приложение в режиме отладки при запуске или отладке проекта из IDE.

Таким образом, я попытался запустить это в командной строке после установки пути Java bin по этой ссылке и, к сожалению, не смог найти свой отпечаток. Это говорит о том, что это незаконный вариант .

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

Есть ли способ найти отпечаток SHA-1 в Android Studio, как это было очень легко в Eclipse? Как я новичок в Android Studio, что это за процесс?

Еще я хочу добавить, что мой Eclipse генерирует отпечаток SHA-1, и ранее я зарегистрировал это приложение на этом отпечатке в консоли разработчика Google, и я работал над этим приложением в Eclipse с помощью этого ключа API. Разве тот же API-ключ может работать над этим моим проектом в Android Studio?


1
Самый простой способ получить SHA-1 для выпуска и отладки в режиме Android Studio Gradle. Проверьте это
Наим Ибрагим

Ответы:


1255

Самые простые способы:

На последнем шаге добавлено обновление для Android Studio V 2.2

Есть два способа сделать это.

1. Быстрее :

  1. Откройте Android Studio
  2. Откройте свой проект
  3. Нажмите на Gradle (на правой боковой панели вы увидите Gradle Bar )
  4. Нажмите «Обновить» (нажмите «Обновить из панели Gradle» , вы увидите список сценариев Gradle вашего проекта)
  5. Нажмите на свой проект ( список имен вашего проекта (корень))
  6. Нажмите на задачи
  7. Нажмите на Android
  8. Двойной щелчок на signingReport (вы получите SHA1 и MD5 в Run Bar (Иногда это будет в Gradle консоли))
  9. Выберите модуль приложения в раскрывающемся списке выбора модуля, чтобы запустить или отладить приложение.

Проверьте скриншот ниже:

введите описание изображения здесь

2. Работа с Google Maps .

  1. Откройте Android Studio
  2. Открой свой проект
  3. Нажмите меню Файл -> Выбрать Новый -> Нажмите Google -> Выбрать Google Maps Activity
  4. Появится диалоговое окно -> Нажмите кнопку Готово
  5. Android Studio автоматически сгенерирует файл XML с именемgoogle_maps_api.xml
  6. Вы получите ключ отладки SHA1 здесь (в строке № 10 файла XML)

Проверьте скриншот ниже:

Введите описание изображения здесь

Обновление Android Studio V 2.2

Существует проблема с выполнением .

Решение:

  • Нажмите на Переключить выполнение задач / текстовый режим с панели запуска.

Проверьте скриншот ниже:

введите описание изображения здесь

Выполнено.


6
Отлично :) но могу ли я использовать этот SHA1 (произведенный как вы описали) в моей консоли разработчика Google для создания учетных данных для моего приложения? Потому что в окне (Отчет о подписи) написано (config: debug) не режим выпуска?
Ашраф Альшахави

2
Приятно иметь способ найти его без командной строки.
Androidcoder

2
Вы, чувак, это работает отлично, так как я не могу найти debug.keystore в своей папке .android @HirenPatel
Manny265

2
Для выпуска SHA1 для хранилища ключей, пожалуйста, обратитесь к stackoverflow.com/questions/15727912/… one
Хирен Патель

12
Начиная с Android Studio 2.2, он отображается в консоли Gradle, а не в Run
adsamcik,

296

Моя проблема такая же, как и то, что я переместил свой проект Google Maps из Eclipse в Android Studio . Я решил свою проблему следующим образом:

Перейдите в каталог Java bin с помощью команды:

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

Теперь введите следующую команду в командном окне (CMD.EXE):

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

Пример:

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

Или вы можете просто написать это в cmd, если вы не знаете имя пользователя:

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

И вы получите SHA1.

Затем я создал новый ключ на https://code.google.com/apis/console из-за изменения имени моего пакета, а затем использовал этот ключ в своем приложении. Работает нормально.

Убедитесь, что вы находитесь в папке BIN файла jdkX.X.X_XX (имя моей папки jdk1.7.0_71) , или же, если вы не знаете, какое у вас имя папки, найдите ее, открыв папку Java, и вы увидите имя папки, но вы должны быть в папке BIN и затем выполнить эту команду. Сегодня я получил значение SHA1 в командном окне cmd с помощью описанной выше процедуры.

ПАНОРАМА:

Введите описание изображения здесь


1
keytool -list -v -keystore "% USERPROFILE% \. android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android Вместо ввода собственного имени пользователя

Да, но как "keytool -list -v -keystore"% USERPROFILE% \. Android \ debug.keystore "-alias androiddebugkey -storepass android -keypass android" уже показано во многих примерах переполнения стека ... я просто хочу привести другой пример.
Джамиль

1
Я не смог скопировать SHA1 из CMD, поэтому я переместил весь вывод вашей заданной команды в файл, добавив: > output.txtпозади вашей команды. Вы также можете добавить | clipза командой. Вы получите вывод команды в буфер обмена Windows. Я надеюсь, что это также экономит время для других. Подробнее об использовании | клип
Sjoerd Pottuit

1
@ SPottuit: Интересный совет clip.exe, не знаю, существовал, спасибо. Кроме того, удаление -vдаст вам SHA1 только как вывод, или в Windows вы можете | find "SHA1" | clip
передать

131

Для Mac это работало отлично:

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

хорошо для меня также
Ранджит Кумар

112

Я только что нашел случай, чтобы получить SHA-1 в Android Studio:

  1. Нажмите на свой пакет и выберите New -> Google -> Google Maps Activity
  2. Android Studio перенаправляет вас на google_maps_api.xml

И вы увидите все, что вам нужно получить google_maps_key.

Образ


1
Я нашел Sha1, но он испортил мне проект, он сказал: «Ошибка: исключение при работе с внешней системой:» и изменил всю структуру моего проекта .... Спасибо !!! ни за что !!! я думаю, что нет никакого способа вернуться.
user3050757

41

Лучшее решение для генерации ключа SHA-1 для Android - от Android Studio .

Нажмите на Gradle в дальнем правом углу:

Нажмите на значок обновления, и вы увидите название приложения:

Нажмите Задачи -> Отчет -> Подписать отчет :

Найдите ключ SHA-1 в нижней части консоли:


Спасибо тебе за это! Ни одна из других альтернатив не сработала, и это было на самом деле еще проще.
Кебман

Спасибо, приятель!
Ханиш Шарма

На Android 3.1.4: Задачи -> Android -> signingReport
Мете

лучший ответ
Нурсеит Турсункулов

36

[Обновлено 2017]

Шаг 1: в верхней правой части Android Studio.

Android Studio Опция "Нажми на Gradle"

Шаг 2:

- Нажмите «Обновить» (нажмите «Обновить из панели Gradle», вы увидите список сценариев Gradle вашего проекта).

- Нажмите на свой проект (список имен вашего проекта (корень))

- Нажмите на задачи

- Нажмите на Android

- Двойной клик на SigningReport (вы получите SHA1 и MD5 в консоли Gradle / Run Bar)

введите описание изображения здесь

Шаг 3: Нажмите на опцию Gradle Console в нижней части Android Studio, чтобы увидеть ключ SHA1.

введите описание изображения здесь

Шаг 4: Теперь у вас есть ключ SHA, но вы не можете запустить свой проект. Поэтому измените свою конфигурацию на режим приложения. Смотрите изображение ниже.

введите описание изображения здесь

Нравится.

введите описание изображения здесь

Шаг 5: Счастливое кодирование!



20

Для Linux и Mac

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

@vicky Пример, пожалуйста .. /home/desktop/././. , abc.jks, какой пароль n все, нам нужны все эти детали ??
Прабс

@prabs, я не могу получить тебя. Вы можете объяснить немного больше?
Вики

@ Vicky, нам нужно отредактировать команду перед ее выполнением? Если да, то какие детали мы должны дать. Это мой запрос.
Прабс

1
@prabs, вам не нужно давать никакой дополнительной информации о ключе отладки, вы просто выполняете вышеуказанную команду в своем терминале Linux.
Вики

14
  1. Нажмите на иконку Gradle на правой панели.
  2. Нажмите на название корневого проекта.
  3. Нажмите Задачи
  4. Нажмите Android
  5. Нажмите подписьОтчет
  6. в нижней панели, где вы видите Run report
  7. Нажмите «Переключить задачи« Исключения / текстовый режим »»
  8. вы можете увидеть ша-1

Студия Android SHA-1


1
Спасибо. отлично работал / Я не знал, что должен был переключить это.
Рауль

12

Я сделал это так:

Шаг 1: перейдите в эту папку

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

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

On Linux: ~/.android/

Шаг 2: Запустите эту командную строку:

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

Вы увидите ключ SHA-1.


/Users/<username>для Mac - это домашняя папка пользователя, поэтому ~можно использовать ярлык, например, дляLinux
user28434

Спасибо за вашу помощь.
Аун

11

Я непосредственно использовал следующую команду с моего Mac, используя терминал. Я получил палец SHA1. Это команда:

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

он также будет работать для Windows: cmtool -list -v -keystore% USERPROFILE% \. android \ debug.keystore -alias androiddebugkey -storepass android -keypass android
Hanuman

9

Для получения SHA1 для производственного хранилища ключей:

  1. Построить -> Создать подписанный APK ...

  2. Создайте хранилище ключей с паролем и следуйте инструкциям

  3. Перейдите в ваш Mac / Library / Java / JavaVirtualMachines / jdk1.8.0_20.jdk / Contents / Home / bin и перетащите папку bin в терминал после команды cd, чтобы указать на нее, чтобы вы могли использовать инструмент keytool. Итак, в терминале напишите cd(перетащите сюда bin), затем нажмите enter.

  4. Затем скопируйте и вставьте это в терминал:

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

    Сотри мой путь и иди туда, где ты хранил свое хранилище ключей, и перетащи свой камень ключей и брось его после -keystoreв командной строке, чтобы путь был создан.

    Также удалите Your_keystore_AliaseName, чтобы указать псевдоним keystone, который вы использовали при его создании.

  5. Нажмите Enterи введите пароль :)

  6. Когда вы вводите пароль, терминал не показывает, что он получает записи с клавиатуры, но на самом деле это так, поэтому введите пароль и нажмите, Enterдаже если вы не видите, что пароль введен.


Вы получили мою THANK SO MUCHнаграду за When you enter the password, the terminal won't show that it receives keyboard entries, but it actually does.
Фарид

7

Это очень легко в Gnu / Linux - Mac - Windows

Сначала: - скопируйте эту команду

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

Второе: теперь скопируйте и вставьте команду в терминал Android Studio введите описание изображения здесь

Результат!

введите описание изображения здесь

Удачи!!


7

Если вы используете Android Studio, вы можете быстро получить отпечаток сертификата SHA-1 и MD5 (отладка, выпуск ... все типы сборки !!) с помощью задач Gradle :

signingReport

Сертификаты SHA-1 и MD5 отображаются в журнале сообщений .

Плагин Android (настроенный в приложении Gradle) по умолчанию создает режим отладки.

com.android.application

Маршрут файла к хранилищу ключей:

HOME/.android/debug.keystore

Я рекомендую прикрепить debug.keystore к build.gradle. Для этого поместите файл debug.keystoreв папку приложения и затем добавьте SigningConfigs в приложение 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"
            }
        }
        ........
    }

Дополнительно: если вы хотите создать для выпуска, поместите файл release.keystoreв папку приложения. (Этот пример использует то же самое debug.keystore.)


1
Я сделал то, что вы сказали выше, но я не получаю релиз SHA1, для релиза он возвращает меня: Вариант: релиз Конфиг: нет
Ашраф Альшахави

Меню AndroidStudio: создать / сгенерировать подписанный apk и создать новый файл. После изменения подписиConfig> релиз на build.gradle (выше)
SergioLucas

6

Если у вас есть Android Studio, то все очень просто. Просто создайте MapActivity с помощью Android Studio и после создания перейдите в google_maps_api.xml. Там будет ссылка, приведенная в комментариях. Если вы вставите его в свой браузер, он попросит заполнить несколько деталей, после чего будет сгенерирован ваш API. Нет необходимости использовать keytool и все.

Скриншот:

Введите описание изображения здесь


Но это будет работать только для отладки. Вы должны вручную определить ключ разблокировки отпечатка пальца.
Hyndrix

@Hyndrix, как вы вручную определяете отпечаток ключа разблокировки?
Микро

Это совершенно ненужный шаг. Не нужно создавать MapActivity только для этого. Вам просто нужно посмотреть в своих Gradle Projects> приложение> Задачи> android> signatureReports и увидеть результат в консоли Gradle под SHA1.
Кебман

5

В моем случае это сработало: используйте % USERPROFILE% вместо указания пути. Файл хранилища ключей хранится по этому пути автоматически C: Пользователи / имя пользователя / .android :

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

5

Используйте простую команду:

keytool -exportcert -keystore путь к отладке или производственному хранилищу ключей -list -v

и вы получите ключ SHA1.


4

Для Windows 10 из терминала Android Studio :

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

Примечание. Для пользователя debug.keystoreиспользуется пароль «android». Хранилище ключей отладки обычно находится по адресу "%USER_PROFILE%"/.android/debug.keystore.


4

Я хочу добавить одну вещь с ответом Softcoder . Я видел, что некоторые люди не могли правильно указать путь к debug.keystorecommand line . Они видят, что делают точный процесс, принятый выше, но он не работает. В этот момент попробуйте перетащить debug.keystore и поместить его в командную строку. Это поможет, если принятый ответ не работает для вас. Сделайте полный процесс без каких-либо колебаний. Это был хороший ответ.


4

Я нашел очень простой процесс поиска отпечатков пальцев MD5, SHA-1 с помощью Android Studio.

  1. Запустите свой проект
  2. Перейти в меню Gradle (Меню: Вид -> Окна инструментов -> Gradle)
  3. Перейдите к «signatureReport» в окне Gradle. (Ваш проект -> Задачи -> Android -> Подписывание отчета)
  4. Запустить его. (Используя двойной щелчок или Ctrl + Shift + F10)
  5. В окне Run вы найдете всю информацию.

Это работает только для режима отладки. В режиме выхода я не вижу ша-1. Здесь результат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
----------

Поэтому я должен использовать keytool, чтобы получить sha-1. Вот официальный документ Firebase:

Get_sha-1_for_release


3

Нажмите значок Gradle на правой панели, затем нажмите (корень).

Задачи> андроид> подписывание отчета

Затем скрипт Gradle выполнится, и вы увидите ваши ключи.


3

Просто вызовите эти методы на экране заставки: hash () и getCertificateSHA1Fingerprint (), и тогда ключи будут видны в журнале.

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();
        }

Благодарю вас.


2

Используйте инструкции из API Manager, используя keytool:

Получите имя пакета из вашего файла AndroidManifest.xml. Затем используйте следующую команду, чтобы получить отпечаток пальца:

keytool -list -v -keystore mystore.keystore


1

Вы можете использовать следующую команду и изменить AJAY SUNDRIYAL с именем вашей системы. Это только для вашего debug.keystore. Это будет работать для вас.

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

Это сработало для меня:

keytool -exportcert -alias androiddebugkey -keystore

Поместите путь к хранилищу ключей отладки или производства, например, в C: \ users \ youruser.android \ debug.keystore -list -v

Убедитесь, что вы уже находитесь в Java\jdk*\binкаталоге в окне команды или терминала.

Затем используйте Android в качестве пароля.

Иногда веб-ресурсы могут вводить в заблуждение. Вот те, которые работают:


1

Путь к хранилищу ключей указан в двойных кавычках. Работает нормально.

keytool -list -v -keystore "C:\Users\App innovation\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android


1

При создании нового «Проекта Google Maps» в Android Studio V 1.5.1 последний экран открывает google_maps_api.xmlфайл и отображает экран со следующими инструкциями:

Ресурсы:

TODO: перед запуском приложения вам нужен ключ API Карт Google.

Чтобы получить его, перейдите по этой ссылке, следуйте инструкциям и нажмите «Создать» в конце:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= ВАШ SHA-1 + ИМЯ ПАКЕТА

Вы также можете добавить свои учетные данные к существующему ключу, используя эту строку:
ВАШ SHA-1: ВАШЕ ПАКЕТНОЕ ИМЯ

Кроме того, следуйте инструкциям здесь:
https://developers.google.com/maps/documentation/android/start#get-key

Получив ключ (он начинается с «AIza»), замените строку «google_maps_key» в этом файле.
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

Чтобы получить ВАШ КЛЮЧ GOOGLE MAPS, просто обрежьте и вставьте URL-ссылку, указанную в вашем браузере, и следуйте приведенным выше инструкциям во время создания нового приложения. SHA-1И Package namesуже в ссылке дали , так что вам не нужно знать их. Однако они будут в вашем проекте в resources>Values>google_maps_api.xmlфайле, который будет завершен, когда вы будете следовать инструкциям по созданию проекта.


1
  • Перейдите в «Файл»> «Структура проекта» appили выберите mobileимяModules

  • Выберите Signingвкладку.

  • Вы можете добавить сертификат нажав на +кнопку.


Не могли бы вы показать мне шаг подробно, приведя любой пример?
Сету Кумар Басак

0

Самый простой способ получить отпечаток пальца - это переключиться с приложения на подписанный отчет, щелкнув раскрывающийся список и нажав кнопку «Создать».

введите описание изображения здесь

Затем вы сможете увидеть отпечаток sha1 на нижней панели, где вы видите отчет об отладке и трассировку стека. Примечание: не забудьте переключиться обратно на приложение, если вы хотите запустить приложение на устройстве или эмуляторе.


Это может быть хорошим моментом, но я не понимаю, что вы имеете в виду, пожалуйста.
nyxee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.