Freigeben eines Builds

Wichtig

Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie eine Migration in Betracht ziehen können.

Erfahren Sie mehr über Supportzeitpläne und Alternativen.

Laden Sie Ihr Anwendungsbinärpaket in App Center hoch, um es zu verteilen. App Center unterstützt die Paketverteilung für Android-, iOS-, macOS-, Windows- und benutzerdefinierte Betriebssystem-Apps. Sie können Releases an einzelne Tester oder Gruppen von Testern verteilen. Für iOS- und Android-Anwendungen können Sie auch in den Stores wie Google Play, die App Store und Intune veröffentlichen. Weitere Informationen finden Sie unter Veröffentlichen in Consumer- und Unternehmensspeichern.

Auf dieser Seite erfahren Sie, wie Sie die Binärdatei für die Veröffentlichung generieren und sie mithilfe des Portals, der Befehlszeilenschnittstelle (CLI) und der Anwendungsprogrammierschnittstelle (API) in Gruppen hochladen und freigeben.

Sie können auch Azure DevOps oder Jenkins verwenden:

Generieren eines binären Anwendungspakets

Zunächst müssen Sie Ihre Anwendung zur Freigabe in eine Binärdatei packen. Sie können diese Datei manuell erstellen oder App Center-Build verwenden. Sie können Build für die automatische Verteilung in der Buildkonfiguration eines Branchs konfigurieren.

In den folgenden Abschnitten wird erläutert, wie Sie die Dateien für alle App-Typen erstellen, die App Center für die Verteilung unterstützt.

Hinweis

Wenn Sie das Archiv hochladen möchten (.zip, IPA und andere), muss die Gesamtgröße Der nicht komprimierten App kleiner als 4 GB sein.

Android

Für Android müssen Sie ein signiertes App-Bündel oder eine APK-Datei erstellen. Ausführliche Informationen zu diesem Prozess finden Sie in der offiziellen Google-Dokumentation zur Vorbereitung einer App für die Veröffentlichung.

  1. Stellen Sie sicher, dass Sie das Manifest aktualisiert haben und über einen ordnungsgemäß konfigurierten Gradle-Build verfügen.
  2. Wählen Sie in Android Studio Build>Signed Bundle/APK generieren aus, und führen Sie die Schritte im Assistenten aus, um das App-Paket oder APK zu erstellen.

Android Studio platziert erstellte App-Bundles in Projektname/modul-name/build/outputs/bundle/ und APKs in project-name/module-name/build/outputs/apk/.

Hinweis

Wenn Sie Android Application Bundle (AAB) verteilen, generiert App Center ein universelles APK, signiert es mit einem generierten Signaturschlüssel und verteilt ihn auf ein Gerät.

iOS

Für iOS müssen Sie ein IPA-Paket für Ihre Anwendung erstellen. Ausführliche Informationen zu diesem Vorgang finden Sie in der offiziellen Apple-Dokumentation.

  1. Registrieren Sie UDIDs für alle Hardwaregeräte in Ihrem Bereitstellungsprofil.
  2. Navigieren Sie in Xcode zu Produktarchiv>, um Ihre App zu archivieren.
  3. Exportieren Sie das Archiv mithilfe des richtigen Bereitstellungsprofils.

macOS

Für macOS müssen Sie ein App-Paket erstellen. App Center unterstützt die Freigabe von App-Paketen vom Typ .app.zip, .pkg oder .dmg. Ausführliche Informationen zu diesem Vorgang finden Sie in der offiziellen Apple macOS-Dokumentation.

  1. Registrieren Sie ein einzelnes Gerät , oder registrieren Sie mehrere Geräte in Ihrem Apple-Entwicklerkonto.
  2. Navigieren Sie in Xcode zu Produktarchiv>, um Ihre App zu archivieren.
  3. Exportieren Sie das Archiv mithilfe des richtigen Bereitstellungsprofils.

Windows

App Center unterstützt die Freigabe von Windows-App-Paketen vom Typ .appx, .appxbundle.appxupload, .msi, .msix, .msixbundle.msixupload, oder .zip. Ausführliche Informationen zum Verpacken Ihrer App im AppX- oder MSIX-Format finden Sie in der offiziellen Microsoft UWP-Dokumentation.

Benutzerdefiniertes Betriebssystem

Archivieren Sie Ihren Build für Apps mit einem benutzerdefinierten Betriebssystem in .zip Format.

Verteilen des Pakets

Hinweis

Alle install.appcenter.ms URLs, die Dateien zum Herunterladen enthalten, sind öffentlich zugänglich.

Um ein Paket mit App Center zu verteilen, wechseln Sie zu App Center, navigieren Sie zu Ihrer App, wechseln Sie dann zu Gruppen verteilen>, und wählen Sie Neue Version aus. Folgen Sie den Anweisungen des Assistenten. Verteilen eines neuen Release

Wählen Sie im ersten Schritt den Bereich Release aus, um nach der Datei zu suchen, die Sie hochladen möchten, oder ziehen Sie die Datei in den Bereich. Abhängig vom Betriebssystem Ihrer App und der Dateierweiterung werden Sie im App Center möglicherweise aufgefordert, eine Version und eine Buildnummer für Ihr Release einzugeben. Geben Sie die Informationen ein, und wählen Sie Weiter aus.

Sie können Versionshinweise als Teil Ihrer Version einschließen, sowohl im Nur-Text- als auch im Markdown-Format. Wählen Sie Weiter aus.

Sie können Ihr Release auf mehrere Verteilergruppen oder Tester ausrichten. App Center stellt diese Version für diese Tester und die Benutzer zur Verfügung, die Teil der ausgewählten Gruppen sind. Wählen Sie Weiter aus.

Festlegen von Releasezielen

Wenn Sie eine iOS-App veröffentlichen, können Sie die Geräte Ihrer Tester automatisch bereitstellen. Wählen Sie Weiter aus.

Überprüfen Sie das Release. Wenn Ihre App das Verteilungs-SDK verwendet, können Sie App Center so konfigurieren, dass das Release obligatorisch ist. Wenn App Center ein Release verteilt, sendet es eine E-Mail-Benachrichtigung über die neue Version an alle Tester, die in den Zielen festgelegt sind. Sie können festlegen, dass Tester auf der Registerkarte "Überprüfung" nicht benachrichtigt werden sollen. Wählen Sie schließlich Verteilen aus, um die Datei für Ihre Tester freizugeben.

Verteilen über die App Center-Befehlszeilenschnittstelle

Warnung

Sie benötigen app Center CLI 2.7 oder höher, um dieses Feature verwenden zu können.

Verteilen Sie Ihr Release mithilfe des appcenter distribute release Befehls in der App Center-CLI. Der folgende Beispielbefehl verteilt eine Datei namens ~/releases/my_app-23.ipa an die Gruppe Beta testers der App My-App , die sich im Besitz von befindet David.

appcenter distribute release --app David/My-App --file ~/releases/my_app-23.ipa --group "Beta testers"

Verteilen mithilfe der API

Sie können die App Center-API aufrufen, um ein Release zu verteilen. Der folgende Ansatz soll einen minimalen Arbeitsansatz beschreiben, viele der Aufgaben können weiter angepasst oder automatisiert werden.

Eine Beispielimplementierung finden Sie hier: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Voraussetzungen

  • Das App-Paket, das hochgeladen und verteilt werden soll.
  • Rufen Sie ein API-Token ab. Ein API-Token wird für die Authentifizierung für alle App Center-API-Aufrufe verwendet.
  • Der Name der Verteilergruppe (optional, wenn der Upload nicht vorhanden oder ungültig ist)
  • Identifizieren Sie und {owner_name}{app_name} für die App, für die Sie ein Release verteilen möchten. Diese Bezeichner werden in der URL für die API-Aufrufe verwendet. Für eine App, die sich im Besitz eines Benutzers befindet, könnte die URL in App Center wie folgt aussehen: https://appcenter.ms/users/Example-User/apps/Example-App. Hier ist und {owner_name} ist {app_name}Example-App.Example-User Für eine App, die sich im Besitz einer Organisation befindet, kann die URL und https://appcenter.ms/orgs/Example-Org/apps/Example-App die {owner_name} sein Example-Org.
Neues Release hochladen

Laden Sie ein neues Release mithilfe der folgenden sequenziellen API-Aufrufe hoch:

  1. Erstellen eines neuen Releaseuploads: Der endpunkt, der aufgerufen werden soll, ist POST /v0.1/apps/{owner_name}/{app_name}/uploads/releases.

        OWNER_NAME="Example-Org"
        APP_NAME="Example-App"
        API_TOKEN="Example-Token"
    
        curl -X POST "https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases" -H  "accept: application/json" -H  "X-API-Token: $API_TOKEN" -H  "Content-Type: application/json" -H "Content-Length: 0"
    

    Die Antwort sieht in etwa wie folgt aus, wobei {VARIABLE_NAME} für jede Verwendung eindeutige Daten ersetzt werden:

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Kopieren Sie die Parameter aus der Antwort im vorherigen Schritt, da die meisten von ihnen im nächsten Schritt verwendet werden, einschließlich der package_asset_id, upload_domain & url_encoded_token.

    Bestimmen Sie die Größe Ihres App-Pakets in Bytes. Es wird empfohlen, einen Befehl wie wc -c ExampleApp.ipa zu verwenden, um eine genaue Byteanzahl zu erhalten.

    Legen Sie für MIME Typecontent_type basierend auf Ihrer App folgendes fest:

    • Android .apk verwendet den Anbietertyp. application/vnd.android.package-archive
    • Android .aab verwendet den Anbietertyp. application/x-authorware-bin
    • iOS verwendet den allgemeinen Typ application/octet-stream

    Der endgültige Befehl sollte etwa wie folgt aussehen:

    FILE_NAME="ExampleApp.apk"
    FILE_SIZE_BYTES=$(wc -c $RELEASE_FILE_LOCATION | awk '{print $1}')
    APP_TYPE='application/vnd.android.package-archive' # iOS uses `application/octet-stream` instead.
    
    METADATA_URL="https://file.appcenter.ms/upload/set_metadata/$PACKAGE_ASSET_ID?file_name=$FILE_NAME&file_size=$FILE_SIZE_BYTES&token=$URL_ENCODED_TOKEN&content_type=$APP_TYPE"
    
     curl -s -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$METADATA_URL"
    

    Die zurückgegebene Ausgabe sollte etwa wie folgt aussehen:

     {
         "error":false,
         "id":"{PACKAGE_ASSET_ID}",
         "chunk_size":4194304,
         "resume_restart":false,
         "chunk_list":[1,2,3,4,5],
         "blob_partitions":1,
         "status_code":"Success"
     }
    
  3. Mithilfe des Werts, der chunk_size nicht angepasst werden kann, können Sie den App-Upload in sequenzielle Blöcke für den Upload in Distributed aufteilen. Sie können das split Hilfsprogramm z. B. wie folgt verwenden:

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    Mit diesem Befehl werden sequenzielle Dateien im Verzeichnis mit dem temp Namen splitaa, splitabusw. generiert. Jede Datei wird innerhalb des Grenzwerts chunk_size aufgeteilt.

  4. Als Nächstes müssen Sie jeden Teil des geteilten App-Pakets mit dem entsprechenden Block hochladen:

    BLOCK_NUMBER=0
    
    for i in temp/*
    do
        BLOCK_NUMBER=$(($BLOCK_NUMBER + 1))
        CONTENT_LENGTH=$(wc -c "$i" | awk '{print $1}')
    
        UPLOAD_CHUNK_URL="https://file.appcenter.ms/upload/upload_chunk/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN&block_number=$BLOCK_NUMBER"
    
        curl -X POST $UPLOAD_CHUNK_URL --data-binary "@$i" -H "Content-Length: $CONTENT_LENGTH" -H "Content-Type: $CONTENT_TYPE"
    done
    
  5. Nachdem der Upload abgeschlossen ist, aktualisieren Sie die status der Uploadressource auf uploadFinished.

    FINISHED_URL="https://file.appcenter.ms/upload/finished/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN"
    curl -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$FINISHED_URL"
    
    COMMIT_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$ID"
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"upload_status": "uploadFinished","id": "$ID"}' \
    -X PATCH \
    $COMMIT_URL
    
  6. Nach dem Hochladen gibt es eine kurze Verzögerung, bevor der Upload als abgeschlossen markiert wird. Rufen Sie diesen status ab, um den $RELEASE_ID für den nächsten Schritt zu erhalten:

    RELEASE_STATUS_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$UPLOAD_ID"
    POLL_RESULT=$(curl -s -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" $RELEASE_STATUS_URL)
    RELEASE_ID=$(echo $POLL_RESULT | jq -r '.release_distinct_id')
    
    if [[ $RELEASE_ID == null ]];
    then
       echo "Failed to find release from appcenter"
       exit 1
    fi
    
  7. Geben Sie schließlich den Build frei. Der aufzurufende Endpunkt ist PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

    DISTRIBUTE_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/releases/$RELEASE_ID"
    
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"destinations": [{ "name": "'"$DISTRIBUTION_GROUP"'"}] }' \    
    -X PATCH \
    $DISTRIBUTE_URL
    
Release verteilen

Verteilen Sie die hochgeladene Version an Tester, Gruppen oder Stores, um die Version im App Center-Portal anzuzeigen. Die drei Endpunkte sind:

Beispiel für Gruppen:

    curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" -d "{ \"id\": "$DISTRIBUTION_GROUP_ID", \"mandatory_update\": false, \"notify_testers\": false}" 

Sie finden die Verteilergruppen-ID auf der Einstellungsseite dieser Gruppe.

Auf die Anforderung zur Verteilung an mehrere Ziele wird hier für komplexere Szenarien verwiesen: PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release eines Builds

Um einen Build für eine andere Verteilergruppe freizugeben, wechseln Sie von einem beliebigen Ort im App Center zu Releases verteilen>, und wählen Sie dann das Release aus, das Sie verteilen möchten. Die Seite mit den Releasedetails wird geöffnet. Wählen Sie in der oberen rechten Ecke des Bildschirms die Schaltfläche Verteilen aus, und wählen Sie das Ziel aus, um den Prozess der erneuten Freigabe zu starten. Führen Sie die Schritte im Assistenten aus, und wählen Sie schließlich Verteilen aus, um das Release an Gruppen/Tester oder den Store zu senden.

Obligatorische Updates

Machen Sie ein Release obligatorisch, um zu erzwingen, dass alle Benutzer dieselbe Version Ihrer App ausführen. In diesem Fall installiert App Center das ausgewählte Update auf allen Testergeräten.

Sie können eine Version nur dann obligatorisch machen, wenn Ihre App das App Center Distributed SDK verwendet. Machen Sie ein Release obligatorisch, indem Sie in der Überprüfungsphase des Verteilens eines Releases das Kontrollkästchen Obligatorische Aktualisierung aktivieren, oder Sie können die API verwenden.

Sie können obligatorische Releases im App Center anzeigen, indem Sie [Ihre App] > Gruppenfreigaben > verteilen >öffnen. Obligatorische Releases werden durch einen roten Punkt gekennzeichnet.

Sobald Sie die Veröffentlichung erfolgreich abgeschlossen haben, können Ihre Tester per E-Mail auf das Release zugreifen, sich beim App Center anmelden oder über einen direkten Link.

Links zu bestimmten Releases finden Sie auf der Releaseseite für private Ziele. Schaltfläche „Installieren“

Hinweis

Android Application Bundles (AAB) können auf der Releaseseite heruntergeladen werden, indem Sie auf die Download-Schaltfläche klicken. Wenn Sie ein installierbares APK-Dateiformat benötigen, verwenden Sie bitte das Installationsportal (https://install.appcenter.ms) auf Ihrem Gerät. Sie finden den Link unter dem generierten QR-Code neben der Download-Schaltfläche.

Links zu bestimmten Releases zu öffentlichen Zielen finden Sie auf der Registerkarte Releases in öffentlichen Gruppen. Öffentlicher Deep Link