¿Por qué la huella digital es diferente en mi apk recién firmado?
Estoy teniendo un problema para obtener la misma huella digital después de haber cambiado el tipo de keystore de PKCS12 a JKS.
Para hacer el cambio, creé un nuevo almacén de claves JKS, borré la clave que estaba en él e importé la clave que necesito del archivo .p12. Cuando verifique la clave con keytool -keystore keystore.jks -list
la huella digital:
- Nunca he definido ninguna contraseña a mi almacén de claves y alias, así que ¿cómo se crean?
- Encuentra el hash clave para una aplicación firmada
- Publicado Android apk da error "El archivo de paquete no estaba firmado correctamente"
- Cacerts.bks no existe
- Cómo asignar "Development Key Hash" para un dispositivo y no un emulador
(SHA1): 21: ... :39
Que es la huella digital del archivo .p12, y la google de la huella digital dice que mis apks anteriores han sido. Cuando firmo mi apk con este certificado e intento subirlo a la playstore, dice que el certificado tiene la huella digital:
SHA1: C7: ... :AF
Cuando examino tanto el archivo .p12 original como el nuevo archivo .jks con KeyStore Explorer ambos listan SHA1: C7: ... :AF
como la huella digital.
Edit1:
keytool -keystore disneyquiz.p12 -storetype PKCS12 -alias 1 -list Enter keystore password: 1, Jun 4, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 21: ... :39 keytool -keystore quizstore.jks -list Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry key0, Dec 3, 2014, PrivateKeyEntry, Certificate fingerprint (SHA1): 21: ... :39
Nuevo Apk
keytool -printcert -file CERT.RSA Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Serial number: 36663939343135303a31343636393337363665663a2d38303030 Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039 Certificate fingerprints: MD5: F6: ... :72 SHA1: C7: ... :AF SHA256: 7C:D6: ... :67:B9 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ codeSigning ]
APK original
keytool -printcert -file CERT.RSA Owner: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Issuer: CN=CBP Development, OU=CBP Development, O=CBP Development, C=US Serial number: 36663939343135303a31343636393337363665663a2d38303030 Valid from: Tue Jun 03 19:29:37 EDT 2014 until: Sat Jun 04 19:29:37 EDT 2039 Certificate fingerprints: MD5: AD: ... :CA SHA1: 21: ... :39 SHA256: D2:7D: ... :8E:47 Signature algorithm name: SHA1withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ codeSigning ]
Editar 2:
El archivo .p12 original se generó con el generador de Adobe Air Certificate y el apk original se compiló con Adobe Flash Professional CC. Después de probar los certificados e intentar firmar el APK de varias maneras, creo que la única posibilidad es que el proceso de firma de Flash Professional de alguna manera cambie la huella digital reportada cuando firma el apk. El CERT.RSA en el flash creado apk META-INF coincide con el CERT.RSA del nuevo apk. Esperemos que alguien tiene una sugerencia de cómo firmar mi apk nuevo para que pueda actualizar mi aplicación.
- Android Development: Keytool, la creación de un almacén de claves?
- La carpeta ".android" y el archivo "debug.keystore" faltan
- Obtener Android Google Map v2 trabajando en la versión de lanzamiento mediante la generación de huella digital SHA1 para la clave de la API
- Google Maps no se muestra en android en modo de publicación
- Generar clave de hash para la aplicación utilizando facebook sdk
- Usando una contraseña de keystore vacía solía ser posible?
- Java Keystore contraseña sin sentido?
- ¿Puedo fusionar varios archivos de keystore de Android en uno?
El problema es con gradle, mientras que la firma con la clave importada de la clave p12.
Pasos para arreglar:
- Cambiar la extensión de apk a zip
- No descomprima el apk, sino que lo abra con zip haciendo doble clic
- Eliminar la carpeta META-INF
- Cambiar la extensión de zip a apk
- Firma tu apk desde cmd usando el comando below
Jarsigner -keystore -storepass
- Zip algin el apk
Zipalign [-f] [-v] infile.apk outfile.apk
La alineación es un entero que define los límites de alineación de bytes. Esto siempre debe ser 4 (que proporciona la alineación de 32 bits) o bien no hace nada.
He podido volver a publicar uno de mis exitosos pasos
Tengo el mismo problema. ¿Encuentras una solución?
Con esta línea de comandos, tengo la misma huella dactilar que apk. Tal vez, puede ayudarle:
openssl pkcs12 -in certificat.p12 -nodes -passin pass:PASSWORD | openssl x509 -fingerprint
- ¿Cómo configurar la validación en canvas android?
- Los valores de caché de SharedPreferences tienen sentido?