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
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
Deja una respuesta