google-maps - guides - show sha1 android studio




Como obter o certificado de impressão digital SHA-1 no Android Studio para o modo de depuração? (20)

Encontrei um processo muito fácil de encontrar sua impressão digital MD5, SHA-1 usando o Android Studio.

  1. Execute seu projeto
  2. Vá para o menu Gradle (Menu: Exibir -> Janelas de ferramentas -> Gradle)
  3. Vá para 'signatureReport' na janela Gradle. (Seu projeto -> Tarefas -> android -> signatureReport)
  4. Executá-lo. (Usando um clique duplo ou Ctrl + Shift + F10)
  5. Na janela Executar, você encontrará todas as informações.

É trabalho apenas para o modo de depuração. No modo realease não consigo ver sha-1. Aqui resulta da 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
----------

Portanto, devo usar o keytool para obter o sha-1. Aqui, documento oficial do Firebase:

Get_sha-1_for_release

Mudei-me do Eclipse para o Android Studio . Agora estou tentando trabalhar no meu aplicativo de mapa. Então, eu preciso do meu número de certificado de impressão digital SHA-1.

Quando eu estava usando o Eclipse, estava bem no Windows -> Preferências -> Android -> Compilar . Mas no Android Studio não consegui encontrar nenhuma opção como essa para encontrar facilmente a impressão digital. Estou usando o Windows. Eu li neste link que:

O Android Studio assina seu aplicativo no modo de depuração automaticamente quando você executa ou depura seu projeto a partir do IDE.

Então, tentei executar isso na linha de comando depois de definir o caminho do bin Java a partir desse link e, infelizmente, não consegui encontrar minha impressão digital. Está dizendo que é uma opção ilegal .

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

Existe uma maneira de encontrar a impressão digital SHA-1 do Android Studio como se fosse muito fácil no Eclipse? Como sou novato no Android Studio, qual é o processo completo para encontrá-lo?

Outra coisa que quero acrescentar é que meu Eclipse gera a impressão digital SHA-1 e anteriormente eu tenho meu aplicativo registrado nessa impressão digital no console do desenvolvedor do Google e trabalhei nesse aplicativo no Eclipse por essa chave de API. A mesma chave de API pode ser trabalhada neste meu projeto no Android Studio?


  1. Clique no ícone Gradle no painel direito.
  2. Clique no nome do projeto raiz.
  3. Clique em Tarefas
  4. Clique em Android
  5. Clique em assinar
  6. no painel inferior, onde você vê Executar relatório
  7. Clique em "Alternar execuções de tarefas / modo de texto"
  8. você pode ver o sha-1


A maneira mais fácil de obter as impressões digitais é alternar do aplicativo para o relatório assinado clicando no menu suspenso e clique em criar.

Você poderá ver a impressão digital sha1 no painel inferior, onde verá o relatório de depuração e o rastreamento de pilha. Lembre-se de voltar ao aplicativo quando desejar executá-lo em um dispositivo ou emulador.


A melhor solução para gerar uma chave SHA-1 para Android é do Android Studio .

Clique em Gradle no lado direito:

Clique no ícone de atualização e você verá o nome do aplicativo:

Clique em Tarefas -> Relatório -> Relatório de assinatura :

Localize a chave SHA-1 na parte inferior do console:


Ao criar um novo "Projeto do Google Maps", no Android Studio V 1.5.1, a última tela abre o arquivo google_maps_api.xml e exibe a tela com as instruções a seguir:

Recursos:

TODO: antes de executar seu aplicativo, você precisa de uma chave da API do Google Maps.

Para obter um, siga este link, siga as instruções e pressione "Criar" no final:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= SEU SHA-1 + SEU NOME DE PACOTE

Você também pode adicionar suas credenciais a uma chave existente, usando esta linha:
SEU SHA-1: SEU NOME DO PACOTE

Como alternativa, siga as instruções aqui:
https://developers.google.com/maps/documentation/android/start#get-key

Depois de ter sua chave (que começa com "AIza"), substitua a string "google_maps_key" neste arquivo.
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

Para obter a CHAVE DO GOOGLE MAPS, basta recortar e colar o link do URL fornecido no navegador e siga as instruções acima no momento da criação do novo aplicativo. Os Package names SHA-1 e do Package names já estão no link fornecido, assim você não precisa conhecê-los. No entanto, eles estarão no seu projeto no arquivo resources>Values>google_maps_api.xml que é concluído quando você segue as instruções para criar o projeto.


Clique no ícone Gradle no painel direito e clique em (raiz).

Tarefas> android> signatureReport

Em seguida, o script Gradle será executado e você verá suas chaves.


Eu fiz assim:

Etapa 1: Vá para esta pasta

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

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

On Linux: ~/.android/

Etapa 2: Execute esta linha de comando:

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

Você verá a tecla SHA-1.


Eu usei diretamente o seguinte comando do meu Mac usando o terminal. Eu tenho o dedo SHA1. Este é o comando:

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

Isso funcionou para mim:

keytool -exportcert -alias androiddebugkey -keystore

Coloque o caminho para o keystore para depuração ou produção aqui, como C: \ users \ youruser.android \ debug.keystore -list -v

Verifique se você já está no diretório Java\jdk*\bin em uma janela de comando ou terminal.

Em seguida, use o Android como a senha.

Às vezes, os recursos da web podem ser enganosos. Estes são os que trabalham:


Meu problema é o mesmo que também mudei meu projeto do Google Maps do Eclipse para o Android Studio . Eu resolvi meu problema seguindo este procedimento:

Vá para o diretório bin do Java através do comando:

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

Agora digite o comando abaixo na sua janela de comando (CMD.EXE):

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

Exemplo:

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

Ou você pode simplesmente escrever isso em cmd se não souber o nome de usuário:

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

E você receberá o SHA1.

Em seguida, criei uma nova chave em https://code.google.com/apis/console devido ao nome do meu pacote ser alterado e, em seguida, use essa chave no meu aplicativo. Funciona bem.

Verifique se você está na pasta BIN do jdkX.X.X_XX (o nome da minha pasta é jdk1.7.0_71) , ou então, se você não souber qual o nome da pasta, encontre-o abrindo a pasta Java e verá qual é o nome da pasta, mas você deve estar na sua pasta BIN e, em seguida, execute este comando. Hoje eu tenho meu valor SHA1 em uma janela de comando cmd pelo procedimento acima.

INSTANTÂNEO:


Para Mac, isso funcionou perfeitamente:

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

Para o Windows 10 , no terminal Android Studio :

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

Nota: Para o debug.keystore , a senha é "android". O keystore de depuração geralmente está localizado em "%USER_PROFILE%"/.android/debug.keystore .


Quero acrescentar uma coisa com a resposta dada pelo Softcoder . Vi que algumas pessoas não conseguiam fornecer seu caminho debug.keystore corretamente na command line . Eles veem que estão fazendo o processo exato aceito acima, mas não está funcionando. Nesse ponto, tente arrastar o debug.keystore e solte-o na linha de comando. Ajudará se a resposta aceita não estiver funcionando para você. Faça o processo completo sem qualquer hesitação. Foi uma boa resposta.


Se você estiver usando o Android Studio, poderá obter a impressão digital do certificado SHA-1 e MD5 (depurar, liberar ... todos os tipos de compilação !!) rapidamente através das Tarefas Gradle :

signatureReport

Os certificados SHA-1 e MD5 são mostrados em Logs de mensagens .

O plug-in Android (configurado no aplicativo Gradle) cria um modo de depuração por padrão.

com.android.application

Rota do arquivo para o keystore:

HOME/.android/debug.keystore

Eu recomendo anexar debug.keystore ao build.gradle . Para fazer isso, coloque um arquivo, debug.keystore , em uma pasta do aplicativo e adicione Add 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: se você deseja criar para lançamento, coloque um arquivo, release.keystore , em uma pasta do aplicativo. (Este exemplo usa o mesmo debug.keystore .)



Use as instruções do API Manager usando keytool:

Obtenha o nome do pacote no seu arquivo AndroidManifest.xml. Em seguida, use o seguinte comando para obter a impressão digital:

keytool -list -v -keystore mystore.keystore


Você pode usar o seguinte comando e alterar AJAY SUNDRIYAL com o nome do sistema. Isso é apenas para o seu debug.keystore. Isso funcionará para você.

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

Maneiras mais fáceis de sempre:

Atualização adicionada para o Android Studio V 2.2 na última etapa

Existem duas maneiras de fazer isso.

1. Maneira mais rápida :

  1. Abra o Android Studio
  2. Abra seu projeto
  3. Clique em Gradle (no painel do lado direito, você verá a barra Gradle )
  4. Clique em Atualizar (Clique em Atualizar na barra Gradle , você verá os scripts List Gradle do seu projeto)
  5. Clique em Seu projeto ( lista de formulários Nome do seu projeto (raiz))
  6. Clique em Tarefas
  7. Clique no Android
  8. Clique duas vezes em signatureReport (você obterá SHA1 e MD5 na barra de execução (às vezes, estará no Gradle Console))
  9. Selecione o módulo do aplicativo no menu suspenso de seleção do módulo para executar ou depurar seu aplicativo

Verifique a imagem abaixo:

2. Trabalhe com a atividade do Google Maps :

  1. Abra o Android Studio
  2. Abra seu projeto
  3. Clique no menu Arquivo -> Selecionar novo -> Clique no Google -> Selecionar atividade do Google Maps
  4. Uma caixa de diálogo seria exibida -> clique em Concluir
  5. O Android Studio geraria automaticamente um arquivo XML chamado google_maps_api.xml
  6. Você obteria a chave SHA1 de depuração aqui (na linha número 10 do arquivo XML)

Confira a captura de tela abaixo:

Atualização do Android Studio V 2.2

Há um problema com a execução .

Solução:

  • Clique em Alternar execução de tarefas / modo de texto na barra Executar

Confira a captura de tela abaixo:

Feito.


Simples, chame esses métodos na tela inicial: hash () e getCertificateSHA1Fingerprint () e, em seguida, as chaves ficariam visíveis no log

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

Obrigado.


[Atualizado em 2017]

Etapa 1: no canto superior direito do Android Studio, clique na opção Gradle.

Passo 2:

- Clique em Atualizar (Clique em Atualizar na barra Gradle, você verá os scripts List Gradle do seu projeto)

- Clique no seu projeto (sua lista de formulários de nome do projeto (raiz))

- Clique em Tarefas

- Clique no Android

- Clique duas vezes em signatureReport (você receberá SHA1 e MD5 no Gradle Console / Run Bar)

Etapa 3: clique na opção Gradle Console, na parte inferior do Android Studio, para ver sua chave SHA1.

Etapa 4: agora você tem a chave SHA, mas não pode executar seu projeto. É por isso que altere sua configuração para o modo de aplicativo. Veja a imagem abaixo.

Como isso.

Etapa 5: Feliz codificação !!





android-studio