ministero-salute / it-dgc-verificaC19-android

VerificaC19 is the official Italian customization of the EU Digital COVID Certificate Verifier App for the Android Operating System
https://www.dgc.gov.it
Apache License 2.0
101 stars 54 forks source link

Build del progetto da Android Studio #244

Closed LucaDavolio closed 2 years ago

LucaDavolio commented 2 years ago

Scusate la domanda un po' banale, ma sono alle prime armi con Android Studio e kotlin in generale e non capisco come effettuare questo passaggio: "Modify app\build.gradle file, changing BASE_URL, SERVER_HOST and CERTIFICATE_SHA debug config values with release config values".

Ho notato che senza fare questa operazione il build mi riesce però l'applicazione non effettua l'aggiornamento di dati e regole e se provo a scansionare mi dice "Impossibile scansionare. L'applicazione deve connettersi alla rete almeno una volta per essere utilizzata." nonostante ho visto che le autorizzazioni per la connessione alla rete sono presenti e anche andando a fare una funzione di check connection mi dice che l'applicazione è connessa.

Sapreste aiutarmi a risolvere il problema?

rawmain commented 2 years ago

Ciao @LucaDavolio

non capisco come effettuare questo passaggio: "Modify app\build.gradle file, changing BASE_URL, SERVER_HOST and CERTIFICATE_SHA debug config values with release config values".

Se vuoi compilare & testare l'app in Debug variant (invece che in Release variant) devi appunto sostituire i parametri per BASE_URL - SERVER_HOST - CERTIFICATE_SHA della config Debug con quelli indicati per la config Release.

Solo gli utenti autorizzati possono infatti collegarsi a test host/URL predefiniti per config debug.

Tali parametri sono definiti nel build.gradle del project dgc-sdk (percorso it-dgc-verificac19-sdk-android/sdk/build.gradle) per cui la modifica è decisamente veloce/agevole.

LucaDavolio commented 2 years ago

I parametri dei 3 valori devono essere semplicemente incollati nella config Debug dentro buildTypes in it-dgc-verificaC19-android/app/build.gradle? Oppure vanno messi nella config Release? O in entrambi?

Perché mettendoli solo nella config Debug il problema persiste.

Inoltre se provo ad andare direttamente all'indirizzo https://get.dgc.gov.it/v1/dgc/ mi nega l'accesso, questo avviene solo perché è necessario il certificato?

rawmain commented 2 years ago

Ciao @LucaDavolio

I parametri dei 3 valori devono essere semplicemente incollati nella config Debug dentro buildTypes in it-dgc-verificaC19-android/app/build.gradle? Oppure vanno messi nella config Release? O in entrambi?

Come indicato nel precedente messaggio, tali parametri NON sono più definiti nel build.gradle del project app, bensì in quello del project dgc-sdk = percorso it-dgc-verificac19-sdk-android/sdk/build.gradle .

Pertanto - qualora tu stia compilando debug variant, invece di release variant - dovrai editare tale file build.gradle (e non quello del project app), sostituendo i valori predefiniti buildConfigField in buildTypes - debug con quelli indicati per config release.

Se invece scegli di compilare release variant per app+dgc-sdk+core, allora non serve effettuare alcuna modifica.

Inoltre se provo ad andare direttamente all'indirizzo https://get.dgc.gov.it/v1/dgc/ mi nega l'accesso

Non è consentito l'accesso pub diretto a BASE_URL di produzione/release, ma solo ai percorsi BASE_URL/PATH corrispondenti ai controller/endpoint API esposti pub per check/fetch KIDs / Validation Rules / DRL = path definiti da ApiService.kt in project:dgc-sdk.