Tải ứng dụng lên để phân tích

Checks API có thể phân tích các ứng dụng Android và iOS trước khi phát hành để bạn có thể nắm được hành vi thu thập và chia sẻ dữ liệu của ứng dụng, cũng như các vấn đề tiềm ẩn về việc tuân thủ trước khi phát hành công khai ứng dụng.

Hướng dẫn bắt đầu nhanh này cho bạn biết cách tải ứng dụng lên bằng gcloud CLI và lệnh cURL.

Điều kiện tiên quyết

Trước khi bắt đầu, hãy đảm bảo bạn có thể gửi các yêu cầu được uỷ quyền bằng cách sử dụng hướng dẫn Uỷ quyền của chúng tôi.

Chuẩn bị gói ứng dụng

Android

  1. Tạo tệp APK hoặc AAB cho ứng dụng của bạn.

    Hãy xem phần Tạo và chạy ứng dụng trong tài liệu Android để biết hướng dẫn.

iOS

  1. Trong Xcode, hãy chọn một hồ sơ cung cấp cho ứng dụng mục tiêu.

  2. Trong trình đơn thả xuống xuất hiện, hãy nhấp vào Sản phẩm > Lưu trữ. Chọn kho lưu trữ gần đây nhất, rồi nhấp vào Phân phối ứng dụng.

  3. Trong cửa sổ xuất hiện, hãy nhấp vào Phát triển > Tiếp theo.

  4. (Không bắt buộc) Để tạo bản dựng nhanh hơn, hãy bỏ chọn tuỳ chọn Rebuild from Bitcode (Tạo lại từ Bitcode), sau đó nhấp vào Next (Tiếp theo).

    Quy trình kiểm tra không yêu cầu bạn giảm kích thước hoặc tạo lại ứng dụng để chạy thử nghiệm, vì vậy, bạn có thể tắt tuỳ chọn này một cách an toàn.

  5. Nhấp vào Xuất, sau đó chỉ định một thư mục mà bạn muốn tải tệp IPA của ứng dụng xuống.

Tải gói ứng dụng lên

Tải gói ứng dụng lên bằng phương thức media.upload.

Có hai cách để tải ứng dụng lên:

Tệp nhị phân có siêu dữ liệu

Bạn có thể thêm siêu dữ liệu như codeReferenceId để liên kết bản phân tích với một cam kết cụ thể trong kho lưu trữ mã của bạn.

Gửi yêu cầu POST nhiều phần có tiêu đề X-Goog-Upload-Protocol: multipart, trong đó phần nội dung đầu tiên chứa siêu dữ liệu dưới dạng JSON và phần nội dung thứ hai chứa tệp nhị phân tải lên:

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"

Chỉ nhị phân

Gửi yêu cầu POST thông thường có tiêu đề X-Goog-Upload-Protocol: raw để tải ứng dụng lên mà không có siêu dữ liệu:

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"

Sau khi ứng dụng của bạn tải lên xong, một google.longrunning.Operation đang chờ xử lý sẽ được trả về:

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}

Kiểm tra trạng thái phân tích

Bạn có thể kiểm tra trạng thái của quá trình phân tích bằng cách gọi phương thức 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"

Phản hồi sau đây sẽ được trả về tuỳ thuộc vào trạng thái:

Đang chờ xử lý

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}

Hoàn chỉnh

{
  "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"
  }
}

Lỗi

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
  "done": true,
  "error": {
    "code": 500,
    "message": "Deadline exceeded.",
    "status": "INTERNAL",
    "details": [
      ...
    ]
  }
}

Xem số liệu phân tích

Xem kết quả phân tích bằng cách gọi phương thức 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"

Theo mặc định, thao tác này chỉ trả về tên tài nguyên báo cáo và một URL để xem báo cáo trong Checks Console.

Để xem thêm dữ liệu, hãy thêm một mặt nạ trường vào yêu cầu. Ví dụ: thêm tham số truy vấn URL fields=name,resultsUri,checks để thêm trường 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",
      ...
    },
    ...
  ]
}

Tiếp theo là gì?

Hãy xem Báo cáo truy vấn để tìm hiểu cách tìm nạp kết quả phân tích.