อัปโหลดแอปเพื่อวิเคราะห์

Checks API สามารถวิเคราะห์แอป Android และ iOS ก่อนเผยแพร่เพื่อให้คุณมี สิทธิ์เข้าถึงลักษณะการทำงานในการเก็บรวบรวมและแชร์ข้อมูลของแอป รวมถึงปัญหาด้านการปฏิบัติตามข้อกำหนดที่อาจเกิดขึ้นก่อนเปิดตัวแอปต่อสาธารณะ

การเริ่มต้นอย่างรวดเร็วนี้แสดงวิธีอัปโหลดแอปโดยใช้ gcloud CLI และคำสั่ง cURL

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณสามารถส่งคำขอที่ได้รับอนุญาตโดยใช้คู่มือการให้สิทธิ์ของเรา

เตรียม App Bundle

Android

  1. สร้างไฟล์ APK หรือ AAB สำหรับแอป

    ดูวิธีการในสร้างและเรียกใช้แอปในเอกสารประกอบของ Android

iOS

  1. ใน Xcode ให้เลือก Provisioning Profile สำหรับแอปเป้าหมาย

  2. จากเมนูแบบเลื่อนลงที่ปรากฏขึ้น ให้คลิกผลิตภัณฑ์ > เก็บ เลือก ที่เก็บถาวรล่าสุด แล้วคลิกเผยแพร่แอป

  3. ในหน้าต่างที่ปรากฏขึ้น ให้คลิกการพัฒนา > ถัดไป

  4. (ไม่บังคับ) หากต้องการบิลด์ให้เร็วขึ้น ให้ยกเลิกการเลือกตัวเลือกสร้างใหม่จากบิตโค้ด แล้วคลิกถัดไป

    การตรวจสอบไม่จำเป็นต้องลดขนาดหรือสร้างแอปใหม่เพื่อเรียกใช้การทดสอบ ดังนั้น คุณจึงปิดใช้ตัวเลือกนี้ได้อย่างปลอดภัย

  5. คลิกส่งออก จากนั้นระบุไดเรกทอรีที่คุณต้องการดาวน์โหลดไฟล์ IPA ของแอป

อัปโหลด App Bundle

อัปโหลด App Bundle โดยใช้วิธี media.upload

การอัปโหลดแอปทำได้ 2 วิธีดังนี้

ไบนารีที่มีข้อมูลเมตา

คุณอาจรวมข้อมูลเมตา เช่น 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 เพื่อดูรายงานใน Checks Console

หากต้องการดูข้อมูลเพิ่มเติม ให้ใส่มาสก์ฟิลด์ในคำขอ ตัวอย่างเช่น เพิ่มพารามิเตอร์การค้นหาของ 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",
      ...
    },
    ...
  ]
}

ขั้นตอนถัดไปคือ

ดูรายงานการค้นหาเพื่อดูวิธีดึงผลลัพธ์ของการวิเคราะห์