Interfejs Checks API może analizować aplikacje na Androida i iOS przed ich opublikowaniem, dzięki czemu przed udostępnieniem aplikacji publicznie możesz sprawdzić, jak zbiera i udostępnia ona dane oraz czy nie występują w niej potencjalne problemy z zgodnością.
Z tego przewodnika dowiesz się, jak przesłać aplikację za pomocą gcloud CLI i polecenia cURL.
Wymagania wstępne
Zanim zaczniesz, upewnij się, że możesz wysyłać autoryzowane żądania zgodnie z naszym przewodnikiem Autoryzacja.
Przygotowywanie pakietu aplikacji
Android
Wygeneruj plik APK lub AAB aplikacji.
Instrukcje znajdziesz w artykule Tworzenie i uruchamianie aplikacji w dokumentacji Androida.
iOS
W Xcode wybierz profil administracyjny dla aplikacji docelowej.
W wyświetlonym menu kliknij Produkt > Archiwizuj. Wybierz najnowsze archiwum, a potem kliknij Distribute App (Rozpowszechnij aplikację).
W wyświetlonym oknie kliknij Development (Rozwój) > Next (Dalej).
(Opcjonalnie) Aby przyspieszyć kompilację, odznacz opcję Rebuild from Bitcode (Ponownie skompiluj z kodu pośredniego), a następnie kliknij Next (Dalej).
Sprawdzanie nie wymaga zmniejszania rozmiaru ani ponownego kompilowania aplikacji, aby przeprowadzić test, więc możesz bezpiecznie wyłączyć tę opcję.
Kliknij Eksportuj, a następnie określ katalog, do którego chcesz pobrać plik IPA aplikacji.
Przesyłanie pakietu aplikacji
Prześlij pakiet aplikacji, korzystając z metody media.upload
.
Aplikację możesz przesłać na 2 sposoby:
Plik binarny z metadanymi
Możesz uwzględnić metadane, takie jak codeReferenceId
, które łączą analizę z określonym zatwierdzeniem w repozytorium kodu.
Wyślij żądanie POST w formacie multipart z nagłówkiem X-Goog-Upload-Protocol: multipart
, w którym pierwsza część treści zawiera metadane w formacie JSON, a druga część treści zawiera przesyłany plik binarny:
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"
Tylko binarne
Wyślij zwykłe żądanie POST z nagłówkiem X-Goog-Upload-Protocol: raw
, aby przesłać aplikację bez metadanych:
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"
Po zakończeniu przesyłania aplikacji zwracany jest stan oczekiwania
google.longrunning.Operation
:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Sprawdzanie stanu analizy
Stan analizy możesz sprawdzić, wywołując metodę 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"
W zależności od stanu zwracana jest ta odpowiedź:
Oczekuje
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Zakończone
{
"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"
}
}
Błąd
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Wyświetlanie analizy
Aby wyświetlić analizę, wywołaj metodę 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"
Domyślnie zwraca tylko nazwę zasobu raportu i adres URL, pod którym można wyświetlić raport w Konsoli weryfikacji.
Aby wyświetlić więcej danych, w żądaniu uwzględnij maskę pola. Na przykład dodaj parametr zapytania w adresie URL fields=name,resultsUri,checks
, aby uwzględnić pole 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",
...
},
...
]
}
Co dalej?
Więcej informacji o pobieraniu wyników analizy znajdziesz w sekcji Raporty z zapytaniami.