App zur Analyse hochladen

Mit der Checks API können Android- und iOS-Apps vor der Veröffentlichung analysiert werden. So erhalten Sie vor der öffentlichen Einführung Ihrer App Informationen zum Erheben und Weitergeben von Daten in Ihrer App sowie zu potenziellen Compliance-Problemen.

In dieser Kurzanleitung erfahren Sie, wie Sie eine App mit der gcloud CLI und dem cURL-Befehl hochladen.

Vorbereitung

Bevor Sie beginnen, sollten Sie sich mit unserer Anleitung zur Autorisierung vertraut machen, damit Sie autorisierte Anfragen senden können.

App-Bundle vorbereiten

Android

  1. Generieren Sie eine APK- oder AAB-Datei für Ihre App.

    Eine Anleitung finden Sie in der Android-Dokumentation unter Build and run your app (App erstellen und ausführen).

iOS

  1. Wählen Sie in Xcode ein Bereitstellungsprofil für die Ziel-App aus.

  2. Klicken Sie im Drop-down-Menü, das daraufhin angezeigt wird, auf Produkt > Archivieren. Wählen Sie das neueste Archiv aus und klicken Sie auf App bereitstellen.

  3. Klicken Sie im angezeigten Fenster auf Entwicklung > Weiter.

  4. Optional: Wenn Sie einen schnelleren Build wünschen, deaktivieren Sie die Option Rebuild from Bitcode (Aus Bitcode neu erstellen) und klicken Sie auf Next (Weiter).

    Für die Überprüfung ist es nicht erforderlich, Ihre App zu verkleinern oder neu zu erstellen, um einen Test auszuführen. Sie können diese Option also deaktivieren.

  5. Klicken Sie auf Exportieren und geben Sie dann ein Verzeichnis an, in das Sie die IPA-Datei Ihrer App herunterladen möchten.

App-Bundle hochladen

Laden Sie Ihr App-Bundle mit der Methode media.upload hoch.

Es gibt zwei Möglichkeiten, Ihre App hochzuladen:

Binärdatei mit Metadaten

Sie können Metadaten wie die codeReferenceId einfügen, die die Analyse mit einem bestimmten Commit in Ihrem Code-Repository verknüpft.

Senden Sie eine mehrteilige POST-Anfrage mit dem Header X-Goog-Upload-Protocol: multipart. Der erste Textteil enthält die Metadaten als JSON und der zweite Textteil den binären Upload:

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"

Nur Binär

Senden Sie eine reguläre POST-Anfrage mit dem Header X-Goog-Upload-Protocol: raw, um Ihre App ohne Metadaten hochzuladen:

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"

Sobald der Upload Ihrer App abgeschlossen ist, wird der Status „Ausstehend“ google.longrunning.Operation zurückgegeben:

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

Status Ihrer Analyse prüfen

Sie können den Status Ihrer Analyse mit der Methode accounts.apps.operations.get prüfen:

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"

Je nach Status wird die folgende Antwort zurückgegeben:

Ausstehend

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

Abgeschlossen

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

Fehler

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

Analyse ansehen

Rufen Sie die Methode accounts.apps.reports.get auf, um Ihre Analyse aufzurufen:

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"

Standardmäßig werden nur der Ressourcenname des Berichts und eine URL zurückgegeben, über die der Bericht in der Checks Console aufgerufen werden kann.

Wenn Sie weitere Daten sehen möchten, fügen Sie der Anfrage eine Feldmaske hinzu. Fügen Sie beispielsweise den URL-Suchparameter fields=name,resultsUri,checks hinzu, um das Feld checks einzuschließen:

{
  "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",
      ...
    },
    ...
  ]
}

Nächste Schritte

Unter Berichte abfragen erfahren Sie, wie Sie die Ergebnisse Ihrer Analyse abrufen.