the - key hashes android studio
Encuentra el hash clave para una aplicaciĆ³n firmada (7)
Firmé mi aplicación y la exporté a una carpeta en mi escritorio llamada aplicación en esta carpeta, es mi aplicación y el almacén de claves. ¿Cómo puedo encontrar el hash clave que puedo copiar en la página de desarrolladores de Facebook? He instalado openssl, pero parece que no puedo generar el hash clave. He probado muchos otros subprocesos en la pila y ninguno ha ayudado, gracias
James
- Usted debe saber dónde está su archivo de almacén de claves. Para mí es
C:/Users/Selvin/Desktop/selvin.kp
- Usted debe saber su alias en el almacén de claves. Para mi es
selvin
- Usted debe saber el camino a Keytool.
C:/Program Files/Java/jdk1.6.0_22/bin/keytool.exe
- Usted debe saber el camino a openssl.
C:/OpenSSL-Win32/bin/openssl.exe
- Usted debe saber la contraseña para el almacén de claves. Para mi es ***** jeje
Entonces, deberías llamar:
C: / Archivos de programa / Java / jdk1.6.0_22 / bin / keytool.exe "-exportcert -alias selvin -keystore c: / users / selvin / desktop / selvin.kp | C: / OpenSSL-Win32 / bin / openssl sha1 -binary | C: / OpenSSL-Win32 / bin / openssl base64
Reemplazar mi camino y alias con los adecuados.
Entonces deberías ver:
Introduzca la contraseña del almacén de claves:
Ingrese su contraseña y debería obtener algo como esto: NfhDlIH7XWJzUZRjL+pZySrMX1Q=
EDITADO : NfgDlIG7XWJzUZRUL+bZySrMX1Q=
<- es un hash mal. O tuviste tanta suerte que tu llave hizo la misma colisión que
error: keytool error: java.lang.Exception: el alias no existe
Si hash no funciona:
Primera llamada
C: / Archivos de programa / Java / jdk1.6.0_22 / bin / keytool.exe "-exportcert -alias selvin -keystore c: / users / selvin / desktop / selvin.kp
Escriba la contraseña y lea el error
Si no recuerda el keytool error: java.lang.Exception: Alias <selvinn> does not exist
su alias keytool error: java.lang.Exception: Alias <selvinn> does not exist
utilicé selvinn para mostrar el error.
Para obtener una lista de todas sus entradas / alias:
C: / Archivos de programa / Java / jdk1.6.0_22 / bin / keytool.exe -list -keystore c: / users / selvin / desktop / selvin.kp
segunda edición
Las soluciones mencionadas anteriormente no funcionaron para mí por alguna razón, pero pude generar exitosamente keyhash. Estoy escribiendo los 10 pasos más fáciles para obtener el "keyhash" de su apk firmado [apk firmado con el almacén de claves] :
Copie el código a continuación en su
activity [start Activity]
. Este código debe estar contenido en su actividad para que pueda extraer el keyhash apropiado cuando comience la Actividad de su apk firmado.private void getHashKey() { try { PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.e("MY_KEY_HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } }
Su archivo
AndroidManifest.xml
debe tener el atributoandroid:allowBackup="true"
en su etiqueta de aplicación.Exporte su apk firmado e instale la aplicación en su teléfono móvil y luego conecte su teléfono en modo de depuración con la
usb debugging on
.Luego ve a
sdk/platform-tools
Abra el símbolo del sistema y escriba
adb devices
para ver si su dispositivo está conectado o no. Si el dispositivo no está en la lista, intente solucionar ese problema antes de continuar con el siguiente paso.Luego escriba
adb logcat >"log.txt"
. Su pantallacmd
gustará colgado. No se asuste. Es perfectamente normal ya que todo el logcat se está escribiendo enlog.txt
.Ejecute su aplicación y, con suerte, cuando piense que la función
getHashKey()
se ejecute, presionectrl+c
en el símbolo del sistema para finalizar la escritura del archivo de registro.Ahora el símbolo del sistema volverá a ser receptivo. Ahora vaya a su directorio
sdk/platform-tools
y verá que se ha creado un archivo log.txt que contiene registros.Ahora
texteditor
en untexteditor
y buscaMY_KEY_HASH:
"----------- Tu keyhash -------"- Copie esto en su
FB account
o donde lo necesite y luego haga otra compilación en la que seandroid:allowBackup="false"
elandroid:allowBackup="false"
y la funcióngetHashKey()
.
Espero que esto haya ayudado a todos :)
No podría molestarme con todo esto. Veo lo que Facebook sdk está enviando al exportar mi aplicación firmada con el código temporal en su lugar para mostrar el error de facebook. ToString () en Autorizar, lo que le da a la tecla hash su búsqueda. Luego puse esto en mi Facebook de la aplicación y el bingo!
Para aquellos que todavía tienen dificultades, he encontrado que estos pasos cuando se siguen correctamente ciertamente funcionarán, pero pueden ser bastante difíciles de hacer bien la primera vez, y en realidad he encontrado que a veces la conversión base64 de la huella dactilar cuando se trata de un alias "no funciona (El hash se trunca por alguna razón). He escrito varios archivos por lotes que reúnen la mayoría de estas instrucciones que ya se han mencionado, por lo que no descarto un problema allí.
Sin embargo, esencialmente la mayoría de las personas se caen en la etapa openssl (o bien no pueden encontrarlo, no saben cómo usarlo, o las tuberías de Windows no encadenan correctamente la salida de la exportación SHA1 a la entrada de conversión base64).
Para solucionar esto, puede utilizar un método alternativo que probablemente sea más fácil de seguir y entender. Esencialmente, lo que quiere la API de Facebook es la representación (codificación) base64 del hash SHA1 utilizado para la huella digital de su APK. Para hacer esto puedes simplemente listar el almacén de claves:
"C:/Program Files/Java/JRE6/Bin/keytool.exe" -list -v -keystore "Path-to-your-keystore" -storepass "KeystorePassword" > somefile.txt
Obviamente, debe cambiar la ruta al ejecutable de keytool de acuerdo con su propia configuración, y reemplazar "Path-to-your-keystore" y "KeystorePassword" con su ruta de keystore y contraseña. El resultado debe ser la creación de un archivo "sometext.txt" en la carpeta actual que puede abrir en cualquier editor de texto. El archivo de texto mostrará una lista de todos los alias del almacén de claves y sus respectivos hashes MD5 y SHA1 como cadenas hexadecimales.
Ahora simplemente encuentre el alias utilizado para firmar su APK, copie el hash SHA1 y use cualquier convertidor de hex a base64 en línea para convertirlo al formato de codificación base64 que requiere facebook. Puede encontrar un convertidor en línea al buscar en Google "convertidor de hex a base64 en línea". He estado usando este ya que solo puedes copiar y pegar la cadena desde el archivo de texto en el cuadro provisto y solo eliminará los dos puntos que separan cada byte hexadecimal.
Un punto final (algo obvio pero ...) solo copia y pega la cadena hexadecimal y NO el SHA1: ¡prefijo!
Espero que esto ayude a alguien; ¡ciertamente funciona para mi!
Primero quisiera agradecer a Selvin!
Esta respuesta es casi idéntica a la de Selvin, pero aún me tomó 3 horas para que funcionara: P, un poco más de tutorial para los newbs reales.
Cómo obtener un hashKey de un almacén de claves
- primero instala OpenSSL desde el código de Google y colócalo en el enlace de descarga de la carpeta C: /
- buscar la ubicación del programa keytool (por defecto en la carpeta java)
- encontrar la ubicación del almacén de claves (hay un valor predeterminado de depuración)
location keytool C: / Archivos de programa (x86) / Java / jdk1.xxx) / bin / keytool location openssl C: / OpenSSL-Win32 / bin / OpenSSL ubicación (debug) almacén de claves C: / Users [usernamepc] .android / debug. almacén de claves
abra cmd en windows (inicio-> ejecutar-> cmd) y navegue hasta la ubicación de la herramienta de teclado o copie y pegue la siguiente cadena, tenga en cuenta que no puede usar ctrl + v pero haga clic con el botón derecho del mouse
cd c:/program files (x86)/java/jdk1.7.0_01/bin
cuando esté en el directorio correcto, pegue esta cadena en la línea cmd:
keytool.exe -exportcert -alias androiddebugkey -keystore c:/users/charx/.android/debug.keystore | C:/OpenSSL-Win32/bin/openssl sha1 -binary | C:/OpenSSL-Win32/bin/openssl base64
"C: / OpenSSL-Win32 / bin / openssl" es la ruta de acceso de opensssl.exe. Reemplácelo con la ruta de su openssl.exe.
asegúrese de cambiar el [nombre de usuario] de su al nombre de su PC como puede ver en mi caso es charx. También el directorio para el java jdk xxxx depende de su versión.
cmd debería mostrar hashkey
la clave hash para mi archivo de depuración es
h1GdQbgB8b/liCG+acmZWkgIRHA=
Si usa sus alies, use este comando para encontrar alies del almacén de claves.
keytool -list -v -keystore keystore.jks | findstr "Creación de alias"
Una solución con Eclipse (para gente perezosa como yo).
Seleccione cualquier proyecto en Eclipse, Exportar - Aplicación de Android, ingrese su pase de clave, etc. y en la última página al final verá MD5: .... SHA1: ....
Copie la cadena SHA1 y péguela en cualquier convertidor en línea HEX-Base64 (por ejemplo, este: http://tomeko.net/online_tools/hex_to_base64.php )
Felicidades Tienes la clave hash necesaria para la consola de desarrollo de Facebook.