wiki: como se publica una version
Compilar recoge release.sh y el workflow de gitea: que verifica y por que, de donde salen las versiones, y por que la release sale como borrador.
parent
2b9c6a2280
commit
10b4ff1ecd
2 changed files with 44 additions and 2 deletions
42
Compilar.md
42
Compilar.md
|
|
@ -48,6 +48,48 @@ dependencias son idénticas entre versiones.
|
||||||
Si algún día lo rellenas con un `npm install` normal, la APK se llevará binarios de
|
Si algún día lo rellenas con un `npm install` normal, la APK se llevará binarios de
|
||||||
Linux de escritorio que en Android no sirven, y pesará diez veces más.
|
Linux de escritorio que en Android no sirven, y pesará diez veces más.
|
||||||
|
|
||||||
|
## Publicar una versión
|
||||||
|
|
||||||
|
`scripts/release.sh` hace el ciclo entero y **siempre igual**, se lance a mano o
|
||||||
|
desde un runner:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export JAVA_HOME=/opt/android-studio/jbr # un JDK con javac
|
||||||
|
export ANDROID_HOME=$HOME/Android/Sdk
|
||||||
|
export OASIS_APK_BASE=../oasis-v0.8.7.apk # solo la primera vez
|
||||||
|
|
||||||
|
cd android
|
||||||
|
./scripts/release.sh # compila y verifica, sin publicar
|
||||||
|
./scripts/release.sh --release # firmada
|
||||||
|
./scripts/release.sh --release --publish # y la sube a las releases
|
||||||
|
```
|
||||||
|
|
||||||
|
Verifica cuatro cosas antes de dar nada por bueno, y son las que han cazado fallos
|
||||||
|
reales en esta rama:
|
||||||
|
|
||||||
|
| Comprueba | Por qué |
|
||||||
|
|---|---|
|
||||||
|
| Que la APK lleva `nodejs-project.zip` | Una APK sin backend compila, instala y arranca igual |
|
||||||
|
| Que lleva `libnode.so` | Sin él no hay Node que ejecutar |
|
||||||
|
| Que declara CAMERA y RECORD_AUDIO | Si se pierden, adiós videollamadas, y no se nota hasta pulsar Llamar |
|
||||||
|
| Que la firma es válida | Y enseña la huella para publicarla |
|
||||||
|
|
||||||
|
Las versiones no se editan a mano: el **versionCode** sale del número de commits (sube
|
||||||
|
solo, y Android exige que suba) y el **versionName** de `package.json`, que es de donde
|
||||||
|
lo saca también el backend —así la versión que muestra la aplicación no puede
|
||||||
|
discrepar de la de la APK—.
|
||||||
|
|
||||||
|
La release se crea **como borrador**. Publicar una APK firmada sin que nadie la mire no
|
||||||
|
debería poder pasar por descuido.
|
||||||
|
|
||||||
|
### Desde gitea
|
||||||
|
|
||||||
|
`.gitea/workflows/apk.yml` hace lo mismo desde un runner. **No se dispara con cada
|
||||||
|
commit** —la APK son más de 100 MB— sino a mano o al crear un tag `v*`.
|
||||||
|
|
||||||
|
El runner necesita JDK 17 con compilador, el SDK de Android, node, zip y unzip. Uno
|
||||||
|
pelado no vale. Los secretos que hay que dar de alta están en la cabecera del fichero.
|
||||||
|
|
||||||
## Firmar
|
## Firmar
|
||||||
|
|
||||||
La contraseña **nunca** en el repositorio ni en `gradle.properties`:
|
La contraseña **nunca** en el repositorio ni en `gradle.properties`:
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ Sin fechas: esto se hace cuando se puede.
|
||||||
- **Selector de ficheros** del navegador interno, que faltaba en el envoltorio propio.
|
- **Selector de ficheros** del navegador interno, que faltaba en el envoltorio propio.
|
||||||
- **[Varias identidades](Identidades)** en el mismo móvil, con selector en los
|
- **[Varias identidades](Identidades)** en el mismo móvil, con selector en los
|
||||||
ajustes y aviso cuando dos comparten clave.
|
ajustes y aviso cuando dos comparten clave.
|
||||||
|
- **[Construcción automatizada](Compilar)**: un script hace el ciclo entero
|
||||||
|
—empaquetar, compilar, verificar y publicar— y un workflow de gitea lo lanza.
|
||||||
|
|
||||||
## En curso
|
## En curso
|
||||||
|
|
||||||
|
|
@ -31,8 +33,6 @@ Sin fechas: esto se hace cuando se puede.
|
||||||
|
|
||||||
## Sin empezar
|
## Sin empezar
|
||||||
|
|
||||||
- **Automatizar la construcción**: que una versión nueva del proyecto oficial genere
|
|
||||||
la APK firmada y publicada sola.
|
|
||||||
- **Limpiar los metadatos EXIF** en el móvil (ver [Limitaciones](Limitaciones)).
|
- **Limpiar los metadatos EXIF** en el móvil (ver [Limitaciones](Limitaciones)).
|
||||||
|
|
||||||
## Bloqueado, y por qué
|
## Bloqueado, y por qué
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue