Mengupload aplikasi untuk analisis

Checks API dapat menganalisis aplikasi Android dan iOS sebelum dirilis sehingga Anda memiliki visibilitas terhadap perilaku pengumpulan dan berbagi data aplikasi serta potensi masalah kepatuhan sebelum meluncurkan aplikasi secara publik.

Panduan memulai ini menunjukkan cara mengupload aplikasi menggunakan gcloud CLI dan perintah cURL.

Prasyarat

Sebelum memulai, pastikan Anda dapat mengirim permintaan yang diizinkan menggunakan panduan Otorisasi kami.

Menyiapkan app bundle

Android

  1. Buat file APK atau AAB untuk aplikasi Anda.

    Lihat Membuat dan menjalankan aplikasi Anda di dokumentasi Android untuk mengetahui petunjuknya.

iOS

  1. Di Xcode, pilih profil penyediaan untuk aplikasi target.

  2. Dari menu drop-down yang muncul, klik Produk > Arsipkan. Pilih arsip terbaru, lalu klik Distribute App.

  3. Di jendela yang muncul, klik Development > Next.

  4. (Opsional) Untuk mendapatkan build yang lebih cepat, batalkan pilihan opsi Rebuild from Bitcode, lalu klik Next.

    Pemeriksaan tidak memerlukan thinning atau mem-build ulang aplikasi untuk menjalankan pengujian sehingga Anda dapat menonaktifkan opsi ini dengan aman.

  5. Klik Export, lalu tentukan direktori tempat Anda ingin mendownload file IPA aplikasi.

Mengupload app bundle Anda

Upload app bundle Anda menggunakan metode media.upload.

Ada dua cara untuk mengupload aplikasi Anda:

Biner dengan metadata

Anda dapat menyertakan metadata seperti codeReferenceId yang menautkan analisis dengan commit tertentu di repositori kode Anda.

Kirim permintaan POST multibagian dengan header X-Goog-Upload-Protocol: multipart di mana bagian isi pertama berisi metadata sebagai JSON dan bagian isi kedua berisi upload biner:

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"

Hanya biner

Kirim permintaan POST reguler dengan header X-Goog-Upload-Protocol: raw untuk mengupload aplikasi Anda tanpa metadata:

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"

Setelah aplikasi Anda selesai diupload, google.longrunning.Operation tertunda akan ditampilkan:

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}

Memeriksa status analisis Anda

Anda dapat memeriksa status analisis dengan memanggil metode 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"

Respons berikut ditampilkan bergantung pada statusnya:

Tertunda

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID"
}

Selesai

{
  "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"
  }
}

Error

{
  "name": "accounts/ACCOUNT_ID/apps/APP_ID/operations/OPERATION_ID",
  "done": true,
  "error": {
    "code": 500,
    "message": "Deadline exceeded.",
    "status": "INTERNAL",
    "details": [
      ...
    ]
  }
}

Melihat analisis Anda

Lihat analisis Anda dengan memanggil metode 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"

Secara default, perintah ini hanya menampilkan nama resource laporan dan URL untuk melihat laporan di Konsol Cek.

Untuk melihat data lainnya, sertakan mask kolom dalam permintaan. Misalnya, tambahkan parameter kueri URL fields=name,resultsUri,checks untuk menyertakan kolom 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",
      ...
    },
    ...
  ]
}

Apa langkah selanjutnya?

Lihat Mengirim kueri laporan untuk mempelajari cara mengambil hasil analisis Anda.