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

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

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

Предпосылки

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

Подготовьте свой пакет приложений

Андроид

  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",
      ...
    },
    ...
  ]
}

Что дальше?

Информацию о том, как получить результаты анализа, см. в разделе Отчеты о запросах .

,

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

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

Предпосылки

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

Подготовьте свой пакет приложений

Андроид

  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",
      ...
    },
    ...
  ]
}

Что дальше?

Информацию о том, как получить результаты анализа, см. в разделе Отчеты о запросах .