Libérer une build

Important

La mise hors service de Visual Studio App Center est prévue pour le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à sa mise hors service complète, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager la migration.

En savoir plus sur les chronologies et les alternatives de support.

Chargez votre package binaire d’application dans App Center pour le distribuer. App Center prend en charge la distribution de packages pour android, iOS, macOS, Windows et les applications de système d’exploitation personnalisées. Vous pouvez distribuer des mises en production à des testeurs individuels ou à des groupes de testeurs. Pour les applications iOS et Android, vous pouvez également publier dans les magasins tels que Google Play, le App Store et Intune. Consultez Publier dans les magasins grand public et d’entreprise.

Dans cette page, vous pouvez apprendre à générer le fichier binaire pour la mise en production et à le charger et à le libérer dans des groupes à l’aide du portail, de l’interface de ligne de commande (CLI) et de l’interface de programmation d’application (API).

Vous pouvez également utiliser Azure DevOps ou Jenkins :

Génération d’un package binaire d’application

Tout d’abord, vous devez empaqueter votre application dans un fichier binaire pour la mise en production. Vous pouvez créer ce fichier manuellement ou utiliser App Center Build. Vous pouvez configurer Build pour distribuer automatiquement dans la configuration de build d’une branche.

Les sections suivantes expliquent comment créer les fichiers pour tous les types d’application pris en charge par App Center pour la distribution.

Notes

Si vous souhaitez charger une archive (.zip, .ipa et autres), la taille totale non compressée de votre application doit être inférieure à 4 Go.

Android

Pour Android, vous devez produire un fichier APK ou un bundle d’applications signé. Pour plus d’informations sur ce processus, consultez la documentation google officielle sur la préparation d’une application en vue de sa publication.

  1. Vérifiez que vous avez mis à jour le manifeste et que vous disposez d’une build Gradle correctement configurée.
  2. Dans Android Studio, choisissez Générer un>bundle signé /APK et suivez les étapes de l’Assistant pour générer le bundle d’applications ou l’APK.

Android Studio place les bundles d’applications générées dans project-name/module-name/build/outputs/bundle/ et les API dans project-name/module-name/build/outputs/apk/.

Notes

Lorsque vous distribuez Android Application Bundle (AAB), App Center génère un APK universel, le signe avec une clé de signature générée et le distribue à un appareil.

iOS

Pour iOS, vous devez produire un package IPA pour votre application. Pour plus d’informations sur ce processus, consultez la documentation officielle d’Apple.

  1. Inscrivez des UDID pour tous les appareils matériels de votre profil d’approvisionnement.
  2. Dans Xcode, accédez à Archive des produits> pour archiver votre application.
  3. Exportez l’archive à l’aide du profil d’approvisionnement approprié.

macOS

Pour macOS, vous devez produire un package d’application. App Center prend en charge la publication de packages d’application de type .app.zip, .pkg ou .dmg. Pour plus d’informations sur ce processus, consultez la documentation officielle d’Apple macOS.

  1. Inscrivez un seul appareil ou inscrivez plusieurs appareils dans votre compte de développeur Apple.
  2. Dans Xcode, accédez à Archive des produits> pour archiver votre application.
  3. Exportez l’archive à l’aide du profil d’approvisionnement approprié.

Windows

App Center prend en charge la publication de packages d’application Windows de type .appx, .appxbundle.appxupload, .msi, .msix, .msixbundle, .msixupload, ou .zip. Pour plus d’informations sur l’empaquetage de votre application aux formats AppX ou MSIX, consultez la documentation officielle de Microsoft UWP.

Système d’exploitation personnalisé

Archivez votre build pour les applications avec un système d’exploitation personnalisé au format .zip.

Distribution du package

Notes

Toutes les URL install.appcenter.ms qui contiennent des fichiers à télécharger sont accessibles publiquement.

Pour distribuer un package avec App Center, accédez à App Center, accédez à votre application, puis accédez à Distribuer des>groupes et sélectionnez Nouvelle version. Suivez les étapes de l'Assistant. Distribution d’une nouvelle version

Dans la première étape, choisissez la zone Mise en production pour rechercher le fichier que vous souhaitez charger, ou faites glisser et déposez le fichier sur la zone. En fonction du système d’exploitation de votre application et de l’extension de fichier, App Center peut vous demander d’entrer une version et un numéro de build pour votre version. Entrez les informations et choisissez Suivant.

Vous pouvez inclure des notes de publication dans le cadre de votre version, à la fois au format texte brut ou Markdown. Choisissez Suivant.

Vous pouvez cibler votre mise en production sur plusieurs groupes de distribution ou testeurs. App Center met cette version à la disposition des testeurs et des utilisateurs qui font partie des groupes sélectionnés. Choisissez Suivant.

Définition des destinations de mise en production

Lorsque vous publiez une application iOS, vous pouvez provisionner automatiquement les appareils de vos testeurs. Choisissez Suivant.

Passez en revue la version. Si votre application utilise le Kit de développement logiciel (SDK) Distribution, vous pouvez configurer App Center pour rendre la mise en production obligatoire. Quand App Center distribue une version, il envoie une notification par e-mail de la nouvelle version à tous les testeurs définis dans les destinations. Vous pouvez choisir de ne pas notifier les testeurs sous l’onglet révision. Enfin, choisissez Distribuer pour libérer le fichier à vos testeurs.

Distribution à l’aide de l’interface de ligne de commande App Center

Avertissement

Vous avez besoin d’App Center CLI 2.7 ou version ultérieure pour utiliser cette fonctionnalité.

Distribuez votre version à l’aide de la appcenter distribute release commande dans l’interface CLI App Center. L’exemple de commande suivant distribue un fichier appelé ~/releases/my_app-23.ipa au groupe Beta testers de l’application My-App appartenant à David.

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

Distribution à l’aide de l’API

Vous pouvez appeler l’API App Center pour distribuer une version. L’approche ci-dessous est destinée à décrire une approche de travail minimale. La plupart des tâches peuvent être personnalisées ou automatisées.

Vous trouverez un exemple d’implémentation ici : https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Prérequis

  • Package d’application à charger et distribuer.
  • Obtenez un jeton d’API. Un jeton d’API est utilisé pour l’authentification pour tous les appels d’API App Center.
  • Nom du groupe de distribution (facultatif, si le chargement est manquant ou non valide)
  • Identifiez les {owner_name} et {app_name} pour l’application pour laquelle vous souhaitez distribuer une version. Ces identificateurs sont utilisés dans l’URL des appels d’API. Pour une application appartenant à un utilisateur, l’URL dans App Center peut ressembler à : https://appcenter.ms/users/Example-User/apps/Example-App. Ici, est {owner_name}Example-User et le {app_name} est Example-App. Pour une application appartenant à une organisation, l’URL peut être https://appcenter.ms/orgs/Example-Org/apps/Example-App et le {owner_name} serait Example-Org.
Charger une nouvelle version

Chargez une nouvelle version à l’aide des appels d’API séquentiels suivants :

  1. Créer un chargement de version : le point de terminaison à appeler est 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"
    

    La réponse ressemblera à ceci, avec {VARIABLE_NAME} le remplacement des données uniques à chaque utilisation :

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Copiez les paramètres de la réponse à l’étape précédente, car la plupart d’entre eux sont utilisés à l’étape suivante, y compris , package_asset_idupload_domain & url_encoded_token.

    Déterminez la taille de votre package d’application en octets. Il est recommandé d’utiliser une commande telle que wc -c ExampleApp.ipa pour obtenir un nombre d’octets précis.

    Définissez le MIME Type pour en content_type fonction de votre application :

    • Android .apk utilise le type de fournisseur application/vnd.android.package-archive
    • Android .aab utilise le type de fournisseur application/x-authorware-bin
    • iOS utilise le type général application/octet-stream

    La commande finale doit ressembler à ceci :

    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"
    

    La sortie retournée doit ressembler à ceci :

     {
         "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. À l’aide de la chunk_size valeur qui ne peut pas être personnalisée, vous pouvez fractionner le chargement de votre application en blocs séquentiels pour le chargement dans Distribuer. Par exemple, vous pouvez utiliser l’utilitaire split comme suit :

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    Cette commande génère des fichiers séquentiels dans le temp répertoire nommé splitaa, splitab, et ainsi de suite. Chaque fichier est fractionné dans la chunk_size limite.

  4. Ensuite, vous devez charger chaque segment du package d’application fractionné avec le bloc respectif :

    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. Une fois le chargement terminé, mettez à jour le status de la ressource de chargement vers 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. Une fois le chargement effectué, il existe un court délai avant que le chargement ne soit marqué comme terminé. Interrogez cette status pour obtenir le $RELEASE_ID pour l’étape suivante :

    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. Enfin, relâchez la build. Le point de terminaison à appeler est 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
    
Distribuer la mise en production

Distribuez la version chargée aux testeurs, groupes ou magasins pour afficher la version dans le portail App Center. Les trois points de terminaison sont les suivants :

Exemple pour les groupes :

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

Vous trouverez l’ID du groupe de distribution sur la page des paramètres de ce groupe.

La demande de distribution vers plusieurs destinations est référencée ici pour des scénarios plus complexes : PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release une build

Pour publier une build dans un autre groupe de distribution, à partir de n’importe quel emplacement dans App Center, accédez à Distribuer > les mises en production , puis sélectionnez à nouveau la version que vous souhaitez distribuer. La page des détails de la mise en production s’ouvre. Sélectionnez le bouton Distribuer dans le coin supérieur droit de l’écran, puis sélectionnez la destination pour démarrer le processus de publication. Suivez les étapes de l’Assistant et enfin sélectionnez Distribuer pour envoyer la version aux groupes/testeurs ou au magasin.

Mises à jour obligatoire

Rendez une mise en production obligatoire pour forcer tous les utilisateurs à exécuter la même version de votre application. Dans ce cas, App Center installe la mise à jour sélectionnée sur tous les appareils testeurs.

Vous ne pouvez rendre une mise en production obligatoire que si votre application utilise le Kit de développement logiciel (SDK) App Center Distribute. Rendez une mise en production obligatoire en cochant la case Mise à jour obligatoire dans l’étape de révision de la distribution d’une mise en production, ou vous pouvez utiliser l’API.

Vous pouvez afficher les versions obligatoires dans App Center en ouvrant [Votre application] > Distribuer > des versions de groupes>. Les libérations obligatoires sont indiquées par un point rouge.

Une fois que vous avez publié avec succès, vos testeurs peuvent accéder à la version par e-mail, en se connectant à App Center ou via un lien direct.

Vous trouverez des liens vers des versions spécifiques sur la page de publication des destinations privées. Bouton Installer

Notes

Les offres groupées d’applications Android (AAB) sont disponibles en téléchargement sur la page de publication en cliquant sur le bouton de téléchargement. Si vous avez besoin d’un format de fichier APK installable, utilisez le portail d’installation (https://install.appcenter.ms) sur votre appareil. Vous trouverez le lien sous le code QR généré en regard du bouton de téléchargement.

Vous trouverez des liens vers des versions spécifiques vers des destinations publiques sous l’onglet Versions dans les groupes publics. Lien profond public