5.0 KiB
LME Mappe Catastali Pro - Play Store Checklist
Identita app
- Nome: LME Mappe Catastali Pro.
- Package name Android:
it.liviomerola.lmemappecatastali.pro. - Versione corrente Play:
1.0.4/ version code104. - Formato Release Android: Android App Bundle (
.aab). - Target SDK Release: Android 16 / API 36.
Base e Pro
La separazione e centralizzata in Services/EntitlementService.cs.
Base gratuita:
- consultazione mappa catastale;
- ricerca localita e ricerca catastale;
- GPS live;
- fino a 15 disegni, misure, POI e punti GPS creati dall'utente;
- apertura e consultazione dei dati gia presenti.
Pro:
- archivio progetti;
- export GIS/PDF/GPX;
- sincronizzazione WebDAV;
- mappe offline;
- strumenti geometrici avanzati;
- traccia GPS.
- disegni, misure, POI e punti GPS senza limite applicativo.
Se l'abbonamento non risulta verificabile offline, l'app conserva una tolleranza locale e non elimina, sequestra o altera i dati dell'utente. Le funzioni Pro possono essere disabilitate, ma i dati esistenti devono restare consultabili.
Google Play Billing
Configurare nella Play Console un unico prodotto in abbonamento:
- product id:
lme_pro; - base plan mensile:
monthly, prezzo discussoEUR 4,99; - base plan annuale:
yearly, prezzo discussoEUR 39,99.
Il codice contiene solo identificativi di prodotto e base plan. Non inserire chiavi casuali, segreti, service account, keystore o password nel repository.
Il client Android usa Google Play Billing 9.1 tramite Xamarin.Android.Google.BillingClient 9.1.0.2. Acquisto, ripristino, acknowledgement e interrogazione delle sottoscrizioni sono collegati a EntitlementService.
Il client supporta la verifica server-side dei purchase token tramite un endpoint HTTPS configurato in fase di build. Il servizio di riferimento e in tools/LmePlayVerifier e usa la Google Play Developer API senza incorporare credenziali nell'app.
Per il test chiuso l'endpoint puo restare disattivato. Prima della produzione occorre pubblicare il servizio, autorizzare il relativo service account nella Play Console e compilare l'app con PlayBillingVerificationUrl e PlayBillingVerificationRequired=true.
Licenze manuali
- Codice opaco cifrato AES-GCM e firmato RSA 3072, inseribile nelle impostazioni dell'app.
- Registro SQLite con nome, cognome, email, emissione, scadenza, hash, note e revoca amministrativa.
- Ritorno automatico a Base alla scadenza, salvo abbonamento Google ancora valido.
- Nessun vincolo al PC emittente o al dispositivo destinatario.
- Backup portabile
.lmekeydella chiave privata, cifrato da password, per l'uso da altri sistemi o utenti Windows.
Dettagli operativi e limiti della revoca offline sono in MANUAL_LICENSES.md.
Firma Android
Usare Play App Signing.
Da fare fuori repository:
- creare upload key e keystore in una cartella privata;
- salvare password in secret manager, variabili ambiente o CI secret;
- configurare
AndroidSigningKeyStore,AndroidSigningKeyAlias,AndroidSigningKeyPasseAndroidSigningStorePasssolo in ambiente locale/CI; - caricare la upload certificate nella Play Console quando richiesto.
Privacy e permessi
Permessi Android dichiarati:
- Internet e stato rete;
- posizione approssimativa e precisa;
- Billing.
La privacy policy deve spiegare:
- uso GPS e posizione per mappa, particelle, tracce e misure;
- uso rete per mappe, servizi catastali pubblici, geocoding, sync WebDAV e aggiornamenti;
- gestione locale di progetti, backup, mappe offline e preferenze;
- eventuali chiavi personali Google/Azure salvate nel SecureStorage del dispositivo;
- acquisti gestiti da Google Play.
Localizzazione e misure
La localizzazione applicativa e in Services/AppLocalizationService.cs.
Lingue iniziali:
- Italiano;
- Inglese.
Sistemi di misura:
- automatico in base all'area;
- metrico;
- imperiale.
La mappa JavaScript riceve cultura e sistema di misura tramite lmeMap.setLocalization(...); distanze, superfici e Leaflet Draw vengono formattati di conseguenza.
Build Release
Esempio locale, con Android SDK installato:
dotnet publish -f net10.0-android -c Release -p:AndroidSdkDirectory=C:\Users\livio\AppData\Local\Android\Sdk
Per firmare aggiungere solo parametri esterni o variabili ambiente, mai valori nel file .csproj.
Per creare APK e AAB di test con una chiave locale separata:
.\scripts\build-android-test.ps1
La chiave di test non deve essere usata come upload key del Play Store.
Interventi richiesti sull'account Google
- aprire o confermare l'account sviluppatore Play Console;
- creare l'app con package
it.liviomerola.lmemappecatastali.pro; - creare
lme_procon i base planmonthlyeyearlye impostarne prezzi e paesi; - attivare Play App Signing e creare una upload key di produzione;
- configurare tester, traccia di test interno e account licenza;
- predisporre credenziali e servizio per la verifica server-side dei purchase token;
- pubblicare la privacy policy su un URL pubblico e completare Data safety, scheda store e classificazione contenuti.