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
|
||||
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
|
||||
|
||||
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.
|
||||
- **[Varias identidades](Identidades)** en el mismo móvil, con selector en los
|
||||
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
|
||||
|
||||
|
|
@ -31,8 +33,6 @@ Sin fechas: esto se hace cuando se puede.
|
|||
|
||||
## 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)).
|
||||
|
||||
## Bloqueado, y por qué
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue