Checks API میتواند برنامههای Android و iOS را قبل از انتشار تجزیه و تحلیل کند تا قبل از راهاندازی عمومی برنامه ، اطلاعات جمعآوری و رفتارهای اشتراکگذاری برنامهتان و مشکلات احتمالی مطابقت را ببینید.
این شروع سریع به شما نشان می دهد که چگونه یک برنامه را با استفاده از gcloud CLI و دستور cURL آپلود کنید.
پیش نیازها
قبل از شروع، مطمئن شوید که قادر به ارسال درخواست های مجاز با استفاده از راهنمای مجوز ما هستید.
بسته نرم افزاری خود را آماده کنید
اندروید
یک فایل APK یا AAB برای برنامه خود ایجاد کنید.
برای دستورالعملها به ساخت و اجرای برنامه خود در مستندات Android مراجعه کنید.
iOS
در Xcode، یک نمایه تامین کننده برای برنامه هدف انتخاب کنید.
از منوی کشویی که ظاهر میشود، روی محصول > بایگانی کلیک کنید. جدیدترین بایگانی را انتخاب کنید، سپس روی توزیع برنامه کلیک کنید.
در پنجره ای که ظاهر می شود، روی توسعه > بعدی کلیک کنید.
(اختیاری) برای دریافت ساخت سریعتر، گزینه Rebuild from Bitcode را از حالت انتخاب خارج کنید، سپس روی Next کلیک کنید.
چکها برای اجرای آزمایش نیازی به نازک کردن یا بازسازی برنامه شما ندارند، بنابراین میتوانید با خیال راحت این گزینه را غیرفعال کنید.
روی صادر کردن کلیک کنید، سپس فهرستی را که میخواهید فایل IPA برنامه خود را در آن بارگیری کنید، مشخص کنید.
بسته برنامه خود را آپلود کنید
بسته برنامه خود را با استفاده از روش media.upload
آپلود کنید.
دو راه برای آپلود برنامه وجود دارد:
باینری با ابرداده
شما ممکن است متادیتا مانند codeReferenceId
را که تجزیه و تحلیل را با یک commit خاص مرتبط می کند در مخزن کد خود قرار دهید.
ارسال یک درخواست 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 برای مشاهده گزارش در کنسول چک ها را برمی گرداند.
برای دیدن دادههای بیشتر، یک فیلد ماسک در درخواست اضافه کنید. به عنوان مثال، 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",
...
},
...
]
}
بعدش چی؟
برای یادگیری نحوه واکشی نتایج تجزیه و تحلیل خود، به گزارش های Query مراجعه کنید.