Files
LMEMappeCatastaliProApp/PLAY_STORE_PRO_CHECKLIST.md
T

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 da pubblicare: 1.0.11 / version code 111.
  • 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 discusso EUR 4,99;
  • base plan annuale: yearly, prezzo discusso EUR 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 .lmekey della 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, AndroidSigningKeyPass e AndroidSigningStorePass solo 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_pro con i base plan monthly e yearly e 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.