diff --git a/android-app/RELEASE.md b/android-app/RELEASE.md new file mode 100644 index 0000000..7482edd --- /dev/null +++ b/android-app/RELEASE.md @@ -0,0 +1,39 @@ +# DH Inspección Android · contrato de release F5 + +## Estado de esta etapa + +La primera candidata de F5 es `0.13.0-rc1` (`versionCode 20`). Su objetivo es convertir el cliente Android en una barrera verificable del repositorio antes del piloto de campo. + +## Barrera obligatoria + +Todo cambio Android o de API que pueda afectar al cliente móvil debe pasar el workflow `Android CI / RC`: + +1. Android lint. +2. Unit tests Android reales (el job falla si no existe ningún XML de tests con al menos una prueba). +3. `assembleDebug`. +4. `assembleRelease` para verificar que la variante productiva compile. +5. Empaquetado del APK debug RC con SHA-256 y metadata de commit/versionado. + +El APK debug usa `com.korexlabs.dhinspeccion.debug`; es deliberadamente independiente de la app productiva y sirve para QA/piloto técnico sin sobrescribir una instalación release histórica. + +## Firma release + +La clave histórica de firma NO se versiona ni se reemplaza. La variante release se compila en CI, pero el APK de distribución final deberá firmarse con la clave histórica y comprobarse antes de instalarlo como actualización de `com.korexlabs.dhinspeccion`. + +No se debe generar una clave nueva para "resolver" una falta de acceso: eso rompería la continuidad de actualización de las tablets que ya tengan una versión firmada con la clave anterior. + +## Evidencia mínima de cada candidata + +El artefacto de CI contiene: + +- APK debug RC; +- archivo `.sha256`; +- `release-metadata.txt` con versión, versionCode, commit, applicationId, API base y canal. + +Para un release de campo definitivo se agregará además: + +- APK release firmada; +- huella/certificado de firma comprobado contra la versión histórica; +- prueba de actualización sobre una tablet con versión anterior; +- smoke funcional contra producción; +- registro del SHA Git exacto que originó la APK.