Categorías
Dev Flutter

Como crear un keystore para hacer el build de un proyecto en Flutter

A veces quisiera que la documentación fuera un poco más maternal y no un oceano de links con manuales técnicos en los que uno se termina perdiendo para tirar un simple comando. Cómo el mundo es así de cruel, hoy seré yo su madre y los llevaré de la mano por este difícil sendero que es programar.

Para crear un KeyStore, la documentación de flutter indica el siguiente comando:

keytool -genkey -v -keystore c:\Users\USER_NAME\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key

Lo primero es que USER_NAME debe ser reemplazado por su nombre de usuario de Windows, que puede deducir de las carpetas disponibles en C:\Users. Suponiendo que su nombre de usuario sea Mario (Qué nombre más bello!), el comando quedaría así:

keytool -genkey -v -keystore c:\Users\Mario\key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key

A continuación seguirá llenar los valores que el comando le pide (Nombre, ciudad, etc. Vamos! No hace falta explicar eso). Al final, su clave quedará en el directorio C:\Users\USER_NAME con el nombre key.jks.

Y por favor, corra este comando en el CMD, NO en git bash ni en otra cosa parecida. No se por que razón no funciona, pero es mejor ahorrarse el sufrimiento.

Es muy importante tener en mente que no puede existir un archivo key.jks en el mismo lugar. Esto generará un error como este al intentar definir la primera contraseña:

Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
java.io.IOException: Keystore was tampered with, or password was incorrect
        at java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:785)
        at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:222)
        at java.base/java.security.KeyStore.load(KeyStore.java:1472)
        at java.base/sun.security.tools.keytool.Main.doCommands(Main.java:1074)
        at java.base/sun.security.tools.keytool.Main.run(Main.java:409)
        at java.base/sun.security.tools.keytool.Main.main(Main.java:402)
Caused by: java.security.UnrecoverableKeyException: Password verification failed
        at java.base/sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:783)
        ... 5 more

Si usted usa Linux y no sabe que hacer, encomiéndese a Linus Torvalds con toda su fe. Si usa Mac, mi más sentido pésame. (Nah! Es broma, después voy a actualizar esto con las indicaciones para el resto de sistemas operativos).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *