API Checks может анализировать приложения Android и iOS перед выпуском, чтобы вы могли отслеживать сбор данных и поведение вашего приложения, а также потенциальные проблемы с соблюдением требований до публичного запуска приложения .
В этом кратком руководстве показано, как загрузить приложение с помощью интерфейса командной строки gcloud и команды cURL.
Предпосылки
Прежде чем начать, убедитесь, что вы можете отправлять авторизованные запросы, используя наше Руководство по авторизации .
Подготовьте свой пакет приложений
Андроид
Создайте файл APK или AAB для вашего приложения.
Инструкции см. в разделе «Создание и запуск приложения» в документации Android.
iOS
В Xcode выберите профиль подготовки для целевого приложения.
В раскрывающемся меню выберите «Продукт» > «Архив» . Выберите последний архив и нажмите «Распространить приложение» .
В появившемся окне нажмите Разработка > Далее .
(Необязательно) Чтобы ускорить сборку, отмените выбор параметра «Перестроить из Bitcode» , затем нажмите «Далее» .
Проверки не требуют прореживания или перестройки вашего приложения для запуска теста, поэтому вы можете спокойно отключить эту опцию.
Нажмите «Экспорт» , затем укажите каталог, в который вы хотите загрузить IPA-файл вашего приложения.
Загрузите свой пакет приложений
Загрузите свой комплект приложения с помощью метода media.upload
.
Загрузить приложение можно двумя способами:
Двоичный файл с метаданными
Вы можете включить метаданные, такие как codeReferenceId
, которые связывают анализ с определенным коммитом в вашем репозитории кода.
Отправьте составной запрос POST с заголовком X-Goog-Upload-Protocol: multipart
, где первая часть тела содержит метаданные в формате JSON, а вторая часть тела содержит двоичную загрузку:
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"
Только двоичный
Отправьте обычный запрос POST с заголовком X-Goog-Upload-Protocol: raw
чтобы загрузить ваше приложение без каких-либо метаданных:
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"
После завершения загрузки вашего приложения возвращается ожидающий google.longrunning.Operation
:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Проверьте состояние вашего анализа
Вы можете проверить состояние своего анализа, вызвав метод 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"
В зависимости от состояния возвращается следующий ответ:
В ожидании
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Полный
{
"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"
}
}
Ошибка
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Просмотреть свой анализ
Просмотрите свой анализ, вызвав метод 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"
По умолчанию возвращается только имя ресурса отчета и URL-адрес для просмотра отчета в консоли проверок.
Чтобы увидеть больше данных, включите маску поля в запрос. Например, добавьте параметр URL-запроса fields=name,resultsUri,checks
чтобы включить поле 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",
...
},
...
]
}
Что дальше?
Информацию о том, как получить результаты анализа, см. в разделе Отчеты о запросах .
,API Checks может анализировать приложения Android и iOS перед выпуском, чтобы вы могли отслеживать сбор данных и поведение вашего приложения, а также потенциальные проблемы с соблюдением требований до публичного запуска приложения .
В этом кратком руководстве показано, как загрузить приложение с помощью интерфейса командной строки gcloud и команды cURL.
Предпосылки
Прежде чем начать, убедитесь, что вы можете отправлять авторизованные запросы, используя наше Руководство по авторизации .
Подготовьте свой пакет приложений
Андроид
Создайте файл APK или AAB для вашего приложения.
Инструкции см. в разделе «Создание и запуск приложения» в документации Android.
iOS
В Xcode выберите профиль подготовки для целевого приложения.
В раскрывающемся меню выберите «Продукт» > «Архив» . Выберите последний архив и нажмите «Распространить приложение» .
В появившемся окне нажмите Разработка > Далее .
(Необязательно) Чтобы ускорить сборку, отмените выбор параметра «Перестроить из Bitcode» , затем нажмите «Далее» .
Проверки не требуют прореживания или перестройки вашего приложения для запуска теста, поэтому вы можете спокойно отключить эту опцию.
Нажмите «Экспорт» , затем укажите каталог, в который вы хотите загрузить IPA-файл вашего приложения.
Загрузите свой пакет приложений
Загрузите свой комплект приложения с помощью метода media.upload
.
Загрузить приложение можно двумя способами:
Двоичный файл с метаданными
Вы можете включить метаданные, такие как codeReferenceId
, которые связывают анализ с определенным коммитом в вашем репозитории кода.
Отправьте составной запрос POST с заголовком X-Goog-Upload-Protocol: multipart
, где первая часть тела содержит метаданные в формате JSON, а вторая часть тела содержит двоичную загрузку:
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"
Только двоичный
Отправьте обычный запрос POST с заголовком X-Goog-Upload-Protocol: raw
чтобы загрузить ваше приложение без каких-либо метаданных:
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"
После завершения загрузки вашего приложения возвращается ожидающий google.longrunning.Operation
:
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Проверьте состояние вашего анализа
Вы можете проверить состояние своего анализа, вызвав метод 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"
В зависимости от состояния возвращается следующий ответ:
В ожидании
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}
Полный
{
"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"
}
}
Ошибка
{
"name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
"done": true,
"error": {
"code": 500,
"message": "Deadline exceeded.",
"status": "INTERNAL",
"details": [
...
]
}
}
Просмотреть свой анализ
Просмотрите свой анализ, вызвав метод 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"
По умолчанию возвращается только имя ресурса отчета и URL-адрес для просмотра отчета в консоли проверок.
Чтобы увидеть больше данных, включите маску поля в запрос. Например, добавьте параметр URL-запроса fields=name,resultsUri,checks
чтобы включить поле 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",
...
},
...
]
}
Что дальше?
Информацию о том, как получить результаты анализа, см. в разделе Отчеты о запросах .