L'API Checks può analizzare le app per Android e iOS prima del rilascio, in modo da avere visibilità sui comportamenti di raccolta e condivisione dei dati della tua app e sui potenziali problemi di conformità prima di lanciare l'app pubblicamente.
Questa guida rapida mostra come caricare un'app utilizzando gcloud CLI e il comando cURL.
Prerequisiti
Prima di iniziare, assicurati di poter inviare richieste autorizzate utilizzando la nostra guida Autorizzazione.
Preparare l'app bundle
Android
Genera un file APK o AAB per la tua app.
Per istruzioni, consulta la sezione Crea ed esegui la tua app nella documentazione di Android.
iOS
In Xcode, seleziona un profilo di provisioning per l'app di destinazione.
Nel menu a discesa visualizzato, fai clic su Prodotto > Archivia. Seleziona l'archivio più recente, poi fai clic su Distribuisci app.
Nella finestra visualizzata, fai clic su Sviluppo > Avanti.
(Facoltativo) Per una compilazione più rapida, deseleziona l'opzione Ricompila da Bitcode, quindi fai clic su Avanti.
Controlli non richiede la riduzione o la ricompilazione dell'app per eseguire un test, quindi puoi disattivare questa opzione in tutta sicurezza.
Fai clic su Esporta, quindi specifica una directory in cui scaricare il file IPA dell'app.
Caricare l'app bundle
Carica l'app bundle utilizzando il metodo media.upload
.
Esistono due modi per caricare l'app:
Binario con metadati
Puoi includere metadati come codeReferenceId
, che
collega l'analisi a un commit specifico nel repository di codice.
Invia una richiesta POST multipart con l'intestazione
X-Goog-Upload-Protocol: multipart
in cui la prima parte del corpo contiene i
metadati in formato JSON e la seconda parte del corpo contiene il caricamento binario:
curl -X POST \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/checks)" \
-H "X-Goog-Upload-Protocol: multipart" \
-F "metadata={\"codeReferenceId\":\"COMMIT_SHA\"}" \
-F "binary=@BINARY_PATH" \
"https://checks.googleapis.com/upload/v1alpha/accounts/ACCOUNT_ID/apps/APP_ID/reports:analyzeUpload"
Solo binario
Invia una normale richiesta POST con l'intestazione X-Goog-Upload-Protocol: raw
per
caricare la tua app senza metadati:
curl -X POST \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/checks)" \
-H "X-Goog-Upload-Protocol: raw" \
-H "Content-Type: application/octet-stream" \
--data-binary @BINARY_PATH \
"https://checks.googleapis.com/upload/v1alpha/accounts/ACCOUNT_ID/apps/APP_ID/reports:analyzeUpload"
Al termine del caricamento dell'app, viene restituito un intent
google.longrunning.Operation
in attesa:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Controllare lo stato dell'analisi
Puoi controllare lo stato dell'analisi chiamando il metodo
accounts.apps.operations.get
:
curl -X GET \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/checks)" \
"https://checks.googleapis.com/v1alpha/accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
A seconda dello stato, viene restituita la seguente risposta:
In attesa
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Completa
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"response": {
"@type": "type.googleapis.com/google.checks.report.v1alpha.Report",
"name": "accounts/ACCOUNT_ID/apps/APP_ID/reports/REPORT_ID",
"resultsUri": "https://checks.google.com/console/dashboard/REPORT_ID?a=APP_ID"
}
}
Errore
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Visualizzare l'analisi
Visualizza l'analisi chiamando il metodo
accounts.apps.reports.get
:
curl -X GET \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/checks)" \
"https://checks.googleapis.com/v1alpha/accounts/ACCOUNT_ID/apps/APP_ID/reports/REPORT_ID"
Per impostazione predefinita, questo comando restituisce solo il nome della risorsa del report e un URL per visualizzare il report nella console Controlli.
Per visualizzare più dati, includi una maschera di campo nella richiesta. Ad esempio, aggiungi il parametro di query URL fields=name,resultsUri,checks
per includere il campo checks
:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/reports/REPORT_ID",
"resultsUri": "https://checks.area120.google.com/console/dashboard/REPORT_ID?a=APP_ID",
"checks": [
{
"type": "DATA_MONITORING_NEW_ENDPOINT",
"severity": "POTENTIAL",
"state": "FAILED",
...
},
...
]
}
Passaggi successivi
Consulta Report sulle query per scoprire come recuperare i risultati dell'analisi.