A API Checks pode analisar apps Android e iOS antes do lançamento para que você tenha visibilidade sobre os comportamentos de coleta e compartilhamento de dados do app e possíveis problemas de conformidade antes de lançar o app publicamente.
Neste guia de início rápido, mostramos como fazer upload de um app usando a CLI gcloud e o comando cURL.
Pré-requisitos
Antes de começar, confira se você consegue enviar solicitações autorizadas usando nosso guia de autorização.
Preparar o pacote de apps
Android
Gere um arquivo APK ou AAB para seu app.
Consulte Criar e executar seu app na documentação do Android para ver instruções.
iOS
No Xcode, selecione um perfil de provisionamento para o app de destino.
No menu suspenso que aparece, clique em Produto > Arquivar. Selecione o arquivo mais recente e clique em Distribuir app.
Na janela exibida, clique em Desenvolvimento > Próxima.
(Opcional) Para ter uma versão mais rápida, desmarque a opção Reconstruir pelo Bitcode e clique em Avançar.
As verificações não exigem a redução ou a recriação do app para executar um teste. Assim, é possível desativar essa opção com segurança.
Clique em Exportar e especifique um diretório para baixar o arquivo IPA do app.
Fazer upload do seu pacote de apps
Faça upload do pacote de apps usando o método media.upload
.
Há duas maneiras de fazer upload do app:
Binário com metadados
Você pode incluir metadados, como o codeReferenceId
, que vincula a análise a um commit específico no repositório de código.
Envie uma solicitação POST de várias partes com o cabeçalho
X-Goog-Upload-Protocol: multipart
. A primeira parte do corpo contém os
metadados como JSON, e a segunda parte contém o upload binário:
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"
Somente binário
Envie uma solicitação POST regular com o cabeçalho X-Goog-Upload-Protocol: raw
para
fazer upload do app sem metadados:
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"
Quando o upload do app terminar, um
google.longrunning.Operation
pendente será retornado:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Verificar o estado da análise
Para verificar o estado da sua análise, chame o 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"
A seguinte resposta é retornada dependendo do estado:
Pendente
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Concluído
{
"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"
}
}
Erro
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Ver sua análise
Para ver sua análise, chame o 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"
Por padrão, isso retorna apenas o nome do recurso do relatório e um URL para conferir o relatório no console de verificações.
Para ver mais dados, inclua uma máscara de campo na solicitação. Por exemplo, adicione o parâmetro de consulta do URL fields=name,resultsUri,checks
para incluir o 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",
...
},
...
]
}
A seguir
Consulte Relatórios de consulta para saber como buscar os resultados da sua análise.