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 eneas.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
- iOS
- Android
- Imagen de build:
sdk-54en 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 eneas.json declaran explícitamente la imagen "image": "sdk-54":
- macOS Sequoia 15.6
- Xcode 26
- iOS 26 SDK
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).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
- iOS — TestFlight
- Android — instalacion directa
- Android — Google Play
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.