Checks API สามารถวิเคราะห์แอป Android และ iOS ก่อนเผยแพร่เพื่อให้คุณมี สิทธิ์เข้าถึงลักษณะการทำงานในการเก็บรวบรวมและแชร์ข้อมูลของแอป รวมถึงปัญหาด้านการปฏิบัติตามข้อกำหนดที่อาจเกิดขึ้นก่อนเปิดตัวแอปต่อสาธารณะ
การเริ่มต้นอย่างรวดเร็วนี้แสดงวิธีอัปโหลดแอปโดยใช้ gcloud CLI และคำสั่ง cURL
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น โปรดตรวจสอบว่าคุณสามารถส่งคำขอที่ได้รับอนุญาตโดยใช้คู่มือการให้สิทธิ์ของเรา
เตรียม App Bundle
Android
สร้างไฟล์ APK หรือ AAB สำหรับแอป
ดูวิธีการในสร้างและเรียกใช้แอปในเอกสารประกอบของ Android
iOS
ใน Xcode ให้เลือก Provisioning Profile สำหรับแอปเป้าหมาย
จากเมนูแบบเลื่อนลงที่ปรากฏขึ้น ให้คลิกผลิตภัณฑ์ > เก็บ เลือก ที่เก็บถาวรล่าสุด แล้วคลิกเผยแพร่แอป
ในหน้าต่างที่ปรากฏขึ้น ให้คลิกการพัฒนา > ถัดไป
(ไม่บังคับ) หากต้องการบิลด์ให้เร็วขึ้น ให้ยกเลิกการเลือกตัวเลือกสร้างใหม่จากบิตโค้ด แล้วคลิกถัดไป
การตรวจสอบไม่จำเป็นต้องลดขนาดหรือสร้างแอปใหม่เพื่อเรียกใช้การทดสอบ ดังนั้น คุณจึงปิดใช้ตัวเลือกนี้ได้อย่างปลอดภัย
คลิกส่งออก จากนั้นระบุไดเรกทอรีที่คุณต้องการดาวน์โหลดไฟล์ 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",
...
},
...
]
}
ขั้นตอนถัดไปคือ
ดูรายงานการค้นหาเพื่อดูวิธีดึงผลลัพธ์ของการวิเคราะห์