চেকস এপিআই অ্যান্ড্রয়েড এবং আইওএস অ্যাপগুলোকে প্রকাশের আগেই বিশ্লেষণ করতে পারে, যাতে আপনার অ্যাপটি সর্বসাধারণের জন্য চালু করার পূর্বেই আপনি সেটির ডেটা সংগ্রহ ও শেয়ার করার পদ্ধতি এবং সম্ভাব্য কমপ্লায়েন্স সংক্রান্ত সমস্যাগুলো সম্পর্কে স্বচ্ছ ধারণা লাভ করতে পারেন।
এই কুইকস্টার্টটি আপনাকে দেখাবে কিভাবে gcloud CLI এবং cURL কমান্ড ব্যবহার করে একটি অ্যাপ আপলোড করতে হয়।
পূর্বশর্ত
শুরু করার আগে, আমাদের অনুমোদন নির্দেশিকা ব্যবহার করে নিশ্চিত হয়ে নিন যে আপনি অনুমোদিত অনুরোধ পাঠাতে সক্ষম।
আপনার অ্যাপ বান্ডেল প্রস্তুত করুন
অ্যান্ড্রয়েড
আপনার অ্যাপের জন্য একটি APK বা AAB ফাইল তৈরি করুন।
নির্দেশাবলীর জন্য অ্যান্ড্রয়েড ডকুমেন্টেশনে আপনার অ্যাপ তৈরি ও চালানোর অংশটি দেখুন।
আইওএস
Xcode-এ, টার্গেট অ্যাপটির জন্য একটি প্রভিশনিং প্রোফাইল নির্বাচন করুন।
প্রদর্শিত ড্রপ-ডাউন মেনু থেকে, প্রোডাক্ট > আর্কাইভ-এ ক্লিক করুন। সবচেয়ে সাম্প্রতিক আর্কাইভটি নির্বাচন করুন, তারপর ডিস্ট্রিবিউট অ্যাপ-এ ক্লিক করুন।
প্রদর্শিত উইন্ডোতে, ডেভেলপমেন্ট > নেক্সট-এ ক্লিক করুন।
(ঐচ্ছিক) দ্রুত বিল্ড করার জন্য, ‘Rebuild from Bitcode’ অপশনটি অনির্বাচিত করুন, তারপর ‘Next’ ক্লিক করুন।
কোনো পরীক্ষা চালানোর জন্য চেকস-এর ক্ষেত্রে আপনার অ্যাপকে থিন বা রিবিল্ড করার প্রয়োজন হয় না, তাই আপনি নিশ্চিন্তে এই অপশনটি নিষ্ক্রিয় করতে পারেন।
এক্সপোর্ট-এ ক্লিক করুন, এরপর একটি ডিরেক্টরি নির্দিষ্ট করুন যেখানে আপনি আপনার অ্যাপের IPA ফাইলটি ডাউনলোড করতে চান।
আপনার অ্যাপ বান্ডেল আপলোড করুন
media.upload পদ্ধতি ব্যবহার করে আপনার অ্যাপ বান্ডেলটি আপলোড করুন।
আপনার অ্যাপ আপলোড করার দুটি উপায় আছে:
মেটাডেটা সহ বাইনারি
আপনি codeReferenceId এর মতো মেটাডেটা অন্তর্ভুক্ত করতে পারেন, যা আপনার কোড রিপোজিটরির একটি নির্দিষ্ট কমিটের সাথে বিশ্লেষণটিকে সংযুক্ত করে।
X-Goog-Upload-Protocol: multipart হেডার সহ একটি মাল্টিপার্ট POST অনুরোধ পাঠান, যেখানে প্রথম বডি পার্টে মেটাডেটা 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"শুধুমাত্র বাইনারি
কোনো মেটাডেটা ছাড়া আপনার অ্যাপ আপলোড করতে X-Goog-Upload-Protocol: raw হেডার সহ একটি সাধারণ POST রিকোয়েস্ট পাঠান:
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 ফিল্ডটি অন্তর্ভুক্ত করতে fields=name,resultsUri,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",
...
},
...
]
}
এরপর কী?
আপনার বিশ্লেষণের ফলাফল কীভাবে সংগ্রহ করবেন তা জানতে কোয়েরি রিপোর্টগুলো দেখুন।