Checks API 可在發布前分析 Android 和 iOS 應用程式,讓您在公開發布應用程式前,瞭解應用程式的資料收集和分享行為,以及潛在的法規遵循問題。
本快速入門導覽課程說明如何使用 gcloud CLI 和 cURL 指令上傳應用程式。
必要條件
開始操作前,請務必先參閱授權指南,確認您能傳送授權要求。
準備應用程式套件
Android
為應用程式產生 APK 或 AAB 檔案。
如需操作說明,請參閱 Android 說明文件中的「建構並執行應用程式」。
iOS
在 Xcode 中,選取目標應用程式的佈建設定檔。
在隨即顯示的下拉式選單中,依序點選「產品」>「封存」。選取最新的封存檔,然後按一下「發布應用程式」。
在隨即顯示的視窗中,依序點選「開發」>「下一步」。
(選用) 如要加快建構速度,請取消選取「從 Bitcode 重建」選項,然後按一下「下一步」。
檢查功能不需要縮減或重建應用程式即可執行測試,因此您可以放心停用這個選項。
按一下「匯出」,然後指定要下載應用程式 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"
根據預設,這只會傳回報告資源名稱和在檢查控制台中查看報告的網址。
如要查看更多資料,請在要求中加入欄位遮罩。舉例來說,加入網址查詢參數 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",
...
},
...
]
}
後續步驟
請參閱「查詢報表」,瞭解如何擷取分析結果。