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.
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:
- Azure DevOps verwendet den App Center-Verteilungstask (Version 3 und höher)
- Jenkins-Plug-In (Version 0.11.0 und höher)
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.
- Stellen Sie sicher, dass Sie das Manifest aktualisiert haben und über einen ordnungsgemäß konfigurierten Gradle-Build verfügen.
- 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.
- Registrieren Sie UDIDs für alle Hardwaregeräte in Ihrem Bereitstellungsprofil.
- Navigieren Sie in Xcode zu Produktarchiv>, um Ihre App zu archivieren.
- 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.
- Registrieren Sie ein einzelnes Gerät , oder registrieren Sie mehrere Geräte in Ihrem Apple-Entwicklerkonto.
- Navigieren Sie in Xcode zu Produktarchiv>, um Ihre App zu archivieren.
- 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.
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.
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}
seinExample-Org
.
Neues Release hochladen
Laden Sie ein neues Release mithilfe der folgenden sequenziellen API-Aufrufe hoch:
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}" }
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 Type
content_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" }
- Android .apk verwendet den Anbietertyp.
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 dassplit
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
Namensplitaa
,splitab
usw. generiert. Jede Datei wird innerhalb des Grenzwertschunk_size
aufgeteilt.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
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
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
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:
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/testers
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/groups
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/stores
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.
Link zu Releases
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.
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.