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>
61 lines
1.9 KiB
Markdown
61 lines
1.9 KiB
Markdown
## Objectif
|
|
|
|
Builder l'APK Android de la **montre Wear OS** 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-watch-apk.sh debug
|
|
```
|
|
|
|
ou pour un build optimisé :
|
|
|
|
```bash
|
|
bash .ideai/skills/scripts/build-watch-apk.sh release
|
|
```
|
|
|
|
Par défaut, si aucun mode n'est donné, le script construit `debug`.
|
|
|
|
## Ce que le script fixe automatiquement
|
|
|
|
- réutilise le SDK Flutter writable dans `.ideai/build-env/flutter-sdk` ;
|
|
- 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 ;
|
|
- se place dans `watch_app/` ;
|
|
- lance `flutter pub get` puis `flutter build apk`.
|
|
|
|
Ne pas builder la montre depuis le root téléphone, et ne pas improviser une autre
|
|
sortie de build : l'app montre a son propre projet Flutter sous `watch_app/`.
|
|
|
|
## Sorties
|
|
|
|
- Debug : `watch_app/build/watch_app/app/outputs/flutter-apk/app-debug.apk`
|
|
- Release : `watch_app/build/watch_app/app/outputs/flutter-apk/app-release.apk`
|
|
|
|
Le script affiche le chemin final de l'APK.
|
|
|
|
## Quand l'utiliser
|
|
|
|
- Après tout changement Flutter/Android dans `watch_app/`.
|
|
- Avant une installation ADB sur la montre.
|
|
- Avant une vérification de connexion téléphone/montre.
|
|
|
|
## 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`.
|
|
- erreur `adb: more than one device/emulator` :
|
|
le build est bon, le problème est au moment de l'installation ADB, pas du build.
|
|
|
|
## Règle d'exécution
|
|
|
|
Pour builder l'APK montre, ne pas réfléchir à la recette : exécuter le script
|
|
ci-dessus avec `debug` ou `release`, puis vérifier l'APK dans
|
|
`watch_app/build/watch_app/app/outputs/flutter-apk/`.
|