Загрузите свое приложение для анализа

API Checks позволяет анализировать приложения для Android и iOS до их выпуска, предоставляя вам информацию о методах сбора и обмена данными, а также о потенциальных проблемах с соответствием нормативным требованиям до публичного запуска приложения .

В этом кратком руководстве показано, как загрузить приложение с помощью интерфейса командной строки gcloud и команды cURL.

Предварительные требования

Прежде чем начать, убедитесь, что вы можете отправлять авторизованные запросы, используя наше руководство по авторизации .

Подготовьте пакет вашего приложения.

Android

  1. Сгенерируйте APK или AAB файл для вашего приложения.

    Инструкции по сборке и запуску приложения см. в документации Android.

iOS

  1. В Xcode выберите профиль подготовки для целевого приложения.

  2. В появившемся выпадающем меню выберите Продукт > Архив . Выберите самый последний архив, затем нажмите Распространить приложение .

  3. В появившемся окне нажмите «Разработка» > «Далее» .

  4. (Необязательно) Для ускорения сборки снимите флажок с опции «Пересобрать из Bitcode» , затем нажмите «Далее» .

    Для запуска тестов не требуется перестраивать или упрощать приложение, поэтому вы можете смело отключить эту опцию.

  5. Нажмите «Экспорт» , затем укажите каталог, куда вы хотите загрузить 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",
      ...
    },
    ...
  ]
}

Что дальше?

См. раздел «Запросы к отчетам» , чтобы узнать, как получить результаты анализа.