برنامه خود را برای تجزیه و تحلیل آپلود کنید

The Checks API can analyze Android and iOS apps before release so that you have visibility into your app's data collection and sharing behaviors and potential compliance issues before launching your app publicly .

این آموزش سریع به شما نشان می‌دهد که چگونه با استفاده از gcloud CLI و دستور cURL یک برنامه را آپلود کنید.

پیش‌نیازها

قبل از شروع، مطمئن شوید که می‌توانید با استفاده از راهنمای مجوز ما، درخواست‌های مجاز ارسال کنید.

بسته برنامه خود را آماده کنید

اندروید

  1. یک فایل APK یا AAB برای برنامه خود ایجاد کنید.

    برای دستورالعمل‌ها، به بخش «ساخت و اجرای برنامه» در مستندات اندروید مراجعه کنید.

آی‌او‌اس

  1. در Xcode، یک پروفایل تأمین (provisioning profile) برای برنامه‌ی هدف انتخاب کنید.

  2. از منوی کشویی که ظاهر می‌شود، روی محصول > بایگانی کلیک کنید. جدیدترین بایگانی را انتخاب کنید، سپس روی توزیع برنامه کلیک کنید.

  3. در پنجره‌ای که ظاهر می‌شود، روی توسعه > بعدی کلیک کنید.

  4. (اختیاری) برای ساخت سریع‌تر، گزینه‌ی «بازسازی از طریق بیت‌کد» را از حالت انتخاب خارج کنید، سپس روی «بعدی» کلیک کنید.

    Checks برای اجرای تست نیازی به نازک‌سازی یا بازسازی برنامه شما ندارد، بنابراین می‌توانید با خیال راحت این گزینه را غیرفعال کنید.

  5. روی Export کلیک کنید، سپس دایرکتوری را که می‌خواهید فایل IPA برنامه‌تان در آن دانلود شود، مشخص کنید.

بسته برنامه خود را آپلود کنید

Upload your app bundle using the media.upload method.

دو راه برای آپلود برنامه شما وجود دارد:

دودویی با فراداده

شما می‌توانید متادیتاهایی مانند 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",
      ...
    },
    ...
  ]
}

بعدش چی؟

برای یادگیری نحوه دریافت نتایج تحلیل خود ، به گزارش‌های پرس‌وجو مراجعه کنید.