From 48e15caf91d5efed1ec45c0cb7c8020407685279 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Mon, 18 May 2026 22:25:58 +0200 Subject: [PATCH] docs: aggiorna CLAUDE.md con build riproducibile e firma release Aggiunge sezione "Build e firma" con: versione Flutter pinnata, Gradle cache isolata, enforce-lockfile, gestione keystore/password, vincolo applicationId e regola versionCode crescente. Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 7d75565..9d074e4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,17 +16,28 @@ cd docker/dev && docker compose up # Test (dalla root del progetto — richiede immagine biteplan-build) docker run --rm -v "$(pwd):/workspace" -w /workspace biteplan-build \ - bash -c "flutter pub get && flutter test" + bash -c "flutter pub get --enforce-lockfile && flutter test" # Test singolo file docker run --rm -v "$(pwd):/workspace" -w /workspace biteplan-build \ bash -c "flutter test test/features/meal_planner/qr_test.dart" # Build APK (headless, da host) -bash docker/build/build.sh # debug → dist/biteplan-debug.apk -bash docker/build/build.sh --release # release → dist/biteplan-release.apk +bash docker/build/build.sh # debug → dist/biteplan-debug.apk +export BITEPLAN_KEYSTORE_PASS=password # richiesto solo per --release +bash docker/build/build.sh --release # release → dist/biteplan-release.apk ``` +## Build e firma + +- **Flutter pinnato**: versione `3.41.9` nei Dockerfile (`ARG FLUTTER_VERSION`); aggiornare anche `.flutter-version` +- **Gradle cache**: named volume Docker `gradle-cache`, isolata dall'host +- **Dipendenze**: `pubspec.lock` committato; la build usa `--enforce-lockfile` e fallisce se il lock non è allineato +- **Keystore**: `docker/biteplan.jks` è in `.gitignore`; da ottenere dall'autore o generare con `keytool` +- **Firma release**: password passata via `BITEPLAN_KEYSTORE_PASS` (mai hardcoded); alias keystore: `biteplan` +- **applicationId**: `com.davide.biteplan` — non cambiare, garantisce aggiornamento diretto dalla v1.2.1 +- **versionCode**: letto da `pubspec.yaml` (`version: X.Y.Z+BUILD`); BUILD deve essere sempre crescente + ## Architettura ```