# Deploy Android ## Versión actual - Base actual: `1.2.17` - Fuente de verdad: [VERSION](/home/mgonzalez/desarrollo/react/linkedsign/VERSION) - Historial de cambios: [CHANGELOG.md](/home/mgonzalez/desarrollo/react/linkedsign/CHANGELOG.md) ## Pasos 1. Haz los cambios en `dev`. 2. Si corresponde, sube versión: - `./scripts/set-version.sh X.Y.Z` - actualiza `CHANGELOG.md` - confirma que `android/app/build.gradle` refleje el nuevo `versionName` y `versionCode` 3. Prueba la app: - `source /etc/profile.d/android-sdk.sh` - `cd android` - `GRADLE_USER_HOME=/home/mgonzalez/desarrollo/react/linkedsign/android/.gradle-home ./gradlew assembleDebug` 4. Si todo está bien, genera release: - `GRADLE_USER_HOME=/home/mgonzalez/desarrollo/react/linkedsign/android/.gradle-home ./gradlew assembleRelease` 5. Copia el APK release: - `cp android/app/build/outputs/apk/release/app-release.apk android/apk/LinkedSign-release.apk` 6. Guarda cambios en git: - `git add .` - `git commit -m "mensaje"` 7. Sube a Gitea: - `git push origin main` 8. Sube el APK a producción: - `ssh deploy@192.168.222.3 -p 2203 'mkdir -p /opt/apps/linkedsign/android/apk'` - `scp -P 2203 android/apk/LinkedSign-release.apk deploy@192.168.222.3:/opt/apps/linkedsign/android/apk/` 9. Limpia archivos `.md` en producción: - `find /opt/apps/linkedsign -type f -iname '*.md' -delete` 10. Verifica descarga pública: - `https://sign.linkedcorp.net/api/downloads/android-apk` ## Notas - La `keystore` de producción está fuera de git. - No pierdas la `keystore` ni las contraseñas. - Si cambias algo visual de la app, no hace falta tocar la web. - Si cambias el contrato del API, prueba login, documentos y firma antes de subir release. - En producción no debe quedar `android/` fuente; solo `/opt/apps/linkedsign/android/apk/LinkedSign-release.apk`. - En cada paso a producción Android se publica únicamente el `APK release`; no se sube el código fuente Android. - El `APK release` que se publique debe corresponder a una versión nueva y anotada en `VERSION` y `CHANGELOG.md`. - El paso Android no debe tocar ni reemplazar: - `/opt/apps/linkedsign/backend/.env` - `/opt/apps/linkedsign/storage/` - `/opt/apps/linkedsign/logs/` - configuración runtime hardened ya existente en producción