Aprende por qué se produce este error mientras intentas firmar tu archivo apk con jarsigner.

Jarsigner es una utilidad de Java que utiliza información de claves y certificados de un almacén de claves para generar firmas digitales para archivos JAR. Un almacén de claves es una base de datos de claves privadas y sus cadenas de certificados X.509 asociadas que autentican las claves públicas correspondientes. Para publicar una aplicación en Play Store, su apk debe estar firmado.

El siguiente comando debería ser suficiente para firmar un APK con un almacén de claves:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore myfile.apk alias_name

Sin embargo, algunos desarrolladores (ya sean aplicaciones nativas o híbridas como Cordova) se han enfrentado a la siguiente excepción:

jarsigner: no se puede firmar jar:: java.util.zip.ZipExceptiontamaño comprimido de entrada no válida (se esperaba 463 pero obtuvo 465 bytes)

Solución

Este error ocurre cuando su apk ya está firmado (usando jarsigner probablemente firmado automáticamente), zipaligned (con zipalign) o el APK que intenta generar fue construido en modo de depuración. Por lo tanto, asegúrese de que está proporcionando un archivo apk no firmado o no asociado a zipa y todo debería funcionar como se esperaba.

Si por alguna razón no puede construir su apk desde cero (porque solo recibió el APK y no puede compilar uno nuevo con el código fuente), entonces puede intentar eliminar la firma actual usando zip desde la línea de comando:

zip -d your-file.apk META-INF/\*

Recuerde que puede firmar un APK varias veces siempre que las claves sean diferentes.

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores