La API de Checks puede analizar apps para Android y iOS antes del lanzamiento para que tengas visibilidad del comportamiento de recopilación y uso compartido de datos de tu app, y de los posibles problemas de cumplimiento antes de lanzar tu app públicamente.
En esta guía de inicio rápido, se muestra cómo subir una app con la CLI de gcloud y el comando cURL.
Requisitos previos
Antes de comenzar, asegúrate de poder enviar solicitudes autorizadas con nuestra guía de Autorización.
Prepara tu paquete de aplicación
Android
Genera un archivo APK o AAB para tu app.
Consulta Cómo compilar y ejecutar tu app en la documentación de Android para obtener instrucciones.
iOS
En Xcode, selecciona un perfil de aprovisionamiento para la app de destino.
En el menú desplegable que aparece, haz clic en Product > Archive. Selecciona el archivo más reciente y, luego, haz clic en Distribute App.
En la ventana que aparece, haz clic en Development > Next.
(Opcional) Para acelerar la compilación, desmarca la opción Rebuild from Bitcode y, luego, haz clic en Next.
Checks no requiere reducir ni volver a compilar la app para ejecutar una prueba, por lo que puedes inhabilitar esta opción de forma segura.
Haz clic en Export y, luego, especifica un directorio en el que quieras descargar el archivo IPA de la app.
Cómo subir tu paquete de aplicación
Sube tu paquete de aplicación con el método media.upload
.
Existen dos formas de subir tu app:
Binario con metadatos
Puedes incluir metadatos, como codeReferenceId
, que vinculan el análisis con una confirmación específica en tu repositorio de código.
Envía una solicitud POST de varias partes con el encabezado X-Goog-Upload-Protocol: multipart
, en la que la primera parte del cuerpo contiene los metadatos como JSON y la segunda parte del cuerpo contiene la carga binaria:
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
Envía una solicitud POST normal con el encabezado X-Goog-Upload-Protocol: raw
para subir tu app sin metadatos:
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"
Una vez que finalice la carga de la app, se devolverá un google.longrunning.Operation
pendiente:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Cómo verificar el estado de tu análisis
Para verificar el estado de tu análisis, llama al método 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"
Se muestra la siguiente respuesta según el estado:
Pendiente
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Completado
{
"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"
}
}
Error
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Consulta tu análisis
Para ver tu análisis, llama al método 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"
De forma predeterminada, esto solo devuelve el nombre del recurso del informe y una URL para ver el informe en la Consola de verificaciones.
Para ver más datos, incluye una máscara de campo en la solicitud. Por ejemplo, agrega el parámetro de consulta de URL fields=name,resultsUri,checks
para incluir el 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",
...
},
...
]
}
Próximos pasos
Consulta Informes de consultas para obtener información sobre cómo recuperar los resultados de tu análisis.