Compilar apps flutter con github actions

Compilar y firmar la Flutter App con Github Actions

Github Actions y Alojar la App

El resultado lo alojaremos en Firebase App Distribution correspondiente a tu app. Opcional, puedes saltar este paso y enviarlo a otro almacenamiento. La razón para usar App Distribution es que puedes automatizar el envío de la app a pruebas.

Es importante agregar los archivos: key.properties y keystore.jks a .gitignore

Para el ejemplo llamaremos al archivo build-develop.yaml

Comenzamos configurando el archivo que ejecutará las tareas cada vez que ejecutemos el comando «git push origin develop» o Push en tu editor, en todo caso.

rama DEVELOP

Para la rama master es lo mismo, pero cambiamos la extensión. Para producción usamos AAB

SECRETOS

Necesitamos agregar los secretos a Github.

¿Dónde agregar los secretos de github?

Tu repositorio > Settings > Secrets and variables > Actions

Github Actions Secret

Los secretos necesarios para firmar y almacenar nuestra App:

  • FIREBASE_TOKEN: para enviar el archivo a Firebase App Distribution)
  • FIREBASE_APPID: ID de la aplicación
  • JKS_B64: Keystore en formato Base 64
  • KEY_PROPERTIES: Configuración: alias y contraseñas de la llave

Vamos a conseguirlos:

FIREBASE_TOKEN

Generamos un token, es necesario que tengas iniciada la sesión de google. Durante el proceso te solicitará confirmación en el navegador predeterminado.

firebase login:ci

Y guarda el resultado en un nuevo secreto.

FIREBASE_APPID

El AppID es sumamente importante para indicarle a firebase a que proyecto le pertenece el archivo compilado y firmado, de esa manera se guardará correctamente.

Y guarda el resultado en un nuevo secreto.

JKS_B64

Como ya sabrás, necesitamos una llave para firmar nuestra aplicación android. Cuando tengamos el archivo .jks que comúnmente es key.jks, vamos a convertirlo a Base64 usando OpenSSL.

openssl base64 -in keystore.jks

Y guarda el resultado en un nuevo secreto.

KEY_PROPERTIES

A continuación, usa este formato para agregar los valores correspondientes de tu keystore. Ingresa tu contraseña en PASSWORD y el ALIAS. El valor de storeFile puedes cambiarlo, pero debe coincidir con la línea 26 del archivo build-develop.yaml

storePassword=PASSWORD
keyPassword=PASSWORD
keyAlias=ALIAS
storeFile=key.jks

Y guarda el resultado en un nuevo secreto.

Ventajas:

  • Nadie tendrá acceso a las llaves, por lo tanto puedes agregar a cualquier persona al desarrollo de tu app sin tener que concederle acceso a las credenciales de producción
  • La compilación sucederá en segundo plano siempre, tu computadora o la computadora de los desarrolladores podrá centrarse siempre en sus tareas y no en compilar y enviar la app
  • Envío automático a QA, Test, Cliente, Vulnerabilidad, Etc.
  • Envío automático a tienda
  • Puedes hacerlo con apk y aab

Desventajas

  • Si la compilación falla tendrás que ir al panel de Actions de tu repositorio en Github
  • Si agregas dependencias nuevas, la compilación podría fallar si hay incompatibilidad.

Recomendaciones

  • Toma en cuenta que tus credenciales se comparten con Github
  • Guarda tu keystore y key.properties en un lugar seguro
  • No agregues datos sensibles en el codigo, en su lugar usa los secretos de Github

Publicado

en

,

Comentarios

Deja una respuesta

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