Skip to main content

Builds

La app de Vivla utiliza EAS Build (Expo Application Services) para generar los binarios de iOS y Android. Todos los perfiles de build estan definidos en eas.json.
Se requiere EAS CLI version 16.16.0 o superior. Instalalo con npm install -g eas-cli.

Perfiles de build

El proyecto define cinco perfiles de build, cada uno orientado a una etapa distinta del ciclo de desarrollo: beta-prod-play hereda de beta-prod (extends) y solo cambia el formato del artefacto de Android. Existe porque los dos destinos piden cosas distintas: la instalacion directa en un movil necesita un APK, y Google Play solo acepta App Bundle en fichas creadas de 2021 en adelante. Para iOS no aporta nada — usa beta-prod.

Configuracion por plataforma

  • Imagen de build: sdk-54 en todos los perfiles. Esta imagen incluye Xcode 26 y compila con iOS 26 SDK, requerido por App Store Connect a partir del 28 de abril de 2026. - Credenciales: gestionadas de forma remota por EAS (no se almacenan localmente) - Build configuration: Release - New Architecture: habilitada. Los provisioning profiles y certificados se manejan automaticamente.

Imagen de build de iOS (Xcode 26)

A partir de la actualización a Expo SDK 54, todos los perfiles de iOS en eas.json declaran explícitamente la imagen "image": "sdk-54":
Esta imagen incluye:
  • macOS Sequoia 15.6
  • Xcode 26
  • iOS 26 SDK
Apple requiere que todas las apps subidas a App Store Connect a partir del 28 de abril de 2026 sean compiladas con iOS 26 SDK (Xcode 26). Builds más antiguos serán rechazados.

Scripts de build

Usa los siguientes scripts de npm para ejecutar builds desde la terminal:

Iconos por entorno

Cada entorno utiliza un icono diferente para facilitar la identificacion de la app instalada en el dispositivo: Android enmascara el icono a circulo o squircle y solo garantiza el 66% central de un lienzo de 108x108dp. Por eso los assets de Android son distintos de los de iOS: llevan el sol con alfa real al 54% del lienzo, y el color de entorno va en la capa de fondo (adaptiveIcon.backgroundColor), no horneado en el PNG. Reutilizar el icono de iOS recorta las puntas del logo.

Bundle IDs

Los identificadores varian segun el entorno para permitir la instalacion simultanea de varias versiones. Son los mismos en iOS y Android: cualquier asimetria rompe la distribucion (ver aviso abajo).
Hasta agosto de 2026, beta-prod usaba com.vivla.app en Android — el mismo que produccion. El APK no se podia instalar en un movil con la app publicada (mismo package, firma distinta: Play App Signing frente al keystore de EAS), beta y produccion no podian convivir, y subirlo a Play habria publicado sobre la ficha de produccion. Si alguna vez hay que tocar un identificador, cambiarlo en ambas plataformas a la vez.
Cada package de Android necesita su cliente en google-services.json, o el build falla con “No matching client found for package name”. El fichero se regenera desde Firebase (proyecto vivla-app): firebase apps:sdkconfig ANDROID <appId> --project vivla-app. Al anadir un entorno nuevo hay que crear antes la app: firebase apps:create android "<nombre>" --package-name <package> --project vivla-app.

Distribucion a testers

Sube al app record de beta (6751716725), distinto del de produccion. Apple procesa el binario en 5-10 minutos y avisa por correo.
Antes de hacer build, siempre ejecutar npm run validate para verificar lint y tests.
Los builds de produccion consumen creditos de EAS. Usa development o preview para pruebas y reserva production para releases finales.