Files
GameTime/.ideai/skills/md/32494e70-abcd-4829-a789-cadc2e7c90c7.md
Blomios 917777e18b chore(wip): consolidation intermédiaire multi-tickets (sprints Statistiques, UI, Bug resolution, Serveur-client)
Regroupe l'état de travail en cours réalisé dans un même worktree sur
plusieurs tickets/sprints (#85, #136, #145, #155-160, #162-164),
mélangeant des tickets QA et inProgress. Ne constitue pas une feature
terminée : commit de sauvegarde avant triage/split par ticket en
branches feature/* dédiées. Exclut les dossiers d'environnement de
build locaux et le heap dump parasite (.gitignore mis à jour).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 16:48:54 +02:00

60 lines
1.9 KiB
Markdown

## Objectif
Builder l'APK Android du **téléphone** GameTime de manière déterministe, sans
recalculer l'environnement de build à chaque fois.
## Usage obligatoire
Toujours lancer le script dédié depuis le project root :
```bash
bash .ideai/skills/scripts/build-phone-apk.sh debug
```
ou pour un build optimisé :
```bash
bash .ideai/skills/scripts/build-phone-apk.sh release
```
Par défaut, si aucun mode n'est donné, le script construit `debug`.
## Ce que le script fixe automatiquement
- copie un SDK Flutter writable dans `.ideai/build-env/flutter-sdk` si absent ;
- isole `HOME`, `XDG_*` et `GRADLE_USER_HOME` dans `.ideai/build-env` ;
- force **Java 21** via `/usr/lib/jvm/java-21-openjdk` ;
- configure `ANDROID_HOME=/opt/android-sdk` et le `PATH` Android/Java ;
- lance `flutter pub get` puis `flutter build apk`.
Ne pas utiliser `/usr/bin/flutter` ou `/opt/flutter/bin/flutter` directement tant
que l'environnement a les mêmes contraintes de sandbox/cache : le wrapper et les
caches système peuvent écrire dans des emplacements non utilisables.
## Sorties
- Debug : `build/app/outputs/flutter-apk/app-debug.apk`
- Release : `build/app/outputs/flutter-apk/app-release.apk`
Le script affiche le chemin final de l'APK.
## Quand l'utiliser
- Après tout changement mobile Android/Flutter côté téléphone.
- Avant une installation ADB sur le téléphone.
- Avant de livrer un APK au user.
## Diagnostic rapide
- `Unsupported class file major version 70` :
`JAVA_HOME` n'est pas sur Java 21.
- `No space left on device` :
manque d'espace dans le volume qui porte `.ideai/build-env`.
- erreurs de dépendances Flutter :
relancer le même script, ne pas improviser une autre séquence.
## Règle d'exécution
Pour builder l'APK téléphone, ne pas réfléchir à la recette : exécuter le script
ci-dessus avec `debug` ou `release`, puis vérifier l'APK dans `build/app/outputs/flutter-apk/`.