Gérer les soumissions de versions d’évaluation de package
L’API de soumission du Microsoft Store fournit des méthodes que vous pouvez utiliser pour gérer les soumissions de versions d’évaluation de package pour vos applications, y compris les déploiements progressifs de packages. Pour une présentation de l’API de soumission du Microsoft Store, y compris les conditions préalables à l’utilisation de l’API, consultez Créer et gérer des soumissions à l’aide des services du Microsoft Store.
Important
Si vous utilisez l’API de soumission du Microsoft Store pour créer une soumission pour une version d’évaluation du package, veillez à apporter d’autres modifications à la soumission uniquement à l’aide de l’API, plutôt que dans l’Espace partenaires. Si vous utilisez le tableau de bord pour modifier une soumission que vous avez créée à l’origine à l’aide de l’API, vous ne pourrez plus modifier ou valider cette soumission à l’aide de l’API. Dans certains cas, la soumission peut être laissée dans l’état d’erreur, ce qui empêche le processus de soumission de se poursuivre. Si cela se produit, vous devez supprimer la soumission et en créer une nouvelle.
Méthodes de gestion des soumissions de versions d’évaluation de package
Utilisez les méthodes suivantes pour obtenir, créer, mettre à jour, valider ou supprimer une soumission de version d’évaluation de package. Avant de pouvoir utiliser ces méthodes, la version d’évaluation du package doit déjà exister dans l’Espace partenaires. Vous pouvez créer une version d’évaluation de package dans l’Espace partenaires ou à l’aide des méthodes d’API de soumission du Microsoft Store décrites dans Gérer les versions d’évaluation du package.
Method | URI | Description |
---|---|---|
GET | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Obtenir une soumission de version d’évaluation de package existante |
GET | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status | Obtenir l’état d’une soumission de version d’évaluation de package existante |
POST | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions | Créer une soumission de version d’évaluation de package |
PUT | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Mettre à jour une soumission de version d’évaluation de package existante |
POST | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit | Valider une soumission de version d’évaluation de package nouvelle ou mise à jour |
DELETE | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Supprimer une soumission de version d’évaluation de package |
Créer une soumission de version d’évaluation du package
Pour créer une soumission pour une version d’évaluation de package, suivez ce processus.
Si vous ne l’avez pas encore fait, remplissez les conditions préalables décrites dans Créer et gérer des soumissions à l’aide des services du Microsoft Store, notamment l’association d’une application Azure AD à votre compte Espace partenaires et l’obtention de votre ID client et de votre clé. Vous devez le faire une seule fois, car ensuite, vous pouvez réutiliser l’ID client et la clé chaque fois que vous devez créer un jeton d’accès Azure AD.
Obtenir un jeton d’accès Azure AD. Vous devez transmettre ce jeton d’accès aux méthodes dans l’API de soumission au Microsoft Store. Une fois que vous avez récupéré le jeton d’accès, vous avez 60 minutes pour l’utiliser avant qu’il n’expire. Une fois le jeton expiré, vous pouvez en obtenir un nouveau.
Créez une soumission de version d’évaluation de package en exécutant la méthode suivante dans l’API de soumission du Microsoft Store. Cette méthode crée une nouvelle soumission en cours, qui est une copie de votre dernière soumission publiée.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions
Le corps de la réponse contient une ressource de soumission de version d’évaluation qui inclut l’ID de la nouvelle soumission, l’URI de signature d’accès partagé (SAP) pour charger tous les packages pour la soumission à Stockage Blob Azure, ainsi que les données de la nouvelle soumission (y compris toutes les descriptions et les informations de tarification).
Remarque
Un URI SAS permet d’accéder à une ressource sécurisée dans le stockage Azure sans clés de compte. Pour plus d’informations générales sur les URI SAS et leur utilisation avec le Stockage Blob Azure, consultez Signatures d’accès partagé, partie 1 : compréhension du modèle SAS et Signatures d’accès partagé, partie 2 : créer et utiliser une SAS avec le stockage Blob.
Si vous ajoutez de nouveaux packages pour la soumission, préparez les packages et ajoutez-les à une archive ZIP.
Modifiez les données de soumission de version d’évaluation avec les modifications requises pour la nouvelle soumission et exécutez la méthode suivante pour mettre à jour la soumission de version d’évaluation du package.
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}
Remarque
Si vous ajoutez de nouveaux packages pour la soumission, veillez à mettre à jour les données de soumission pour faire référence au nom et au chemin relatif de ces fichiers dans l’archive ZIP.
Si vous ajoutez de nouveaux packages pour la soumission, chargez l’archive ZIP sur Stockage Blob Azure à l’aide de l’URI SAP fourni dans le corps de la réponse de la méthode POST que vous avez appelée précédemment. Il existe différentes bibliothèques Azure que vous pouvez utiliser pour faire cela sur diverses plateformes, notamment :
- Bibliothèque cliente Azure Storage pour .NET
- Kit de développement logiciel (SDK) Azure Storage pour Java
- Kit de développement logiciel (SDK) Stockage Azure pour Python
L’exemple de code C# suivant montre comment télécharger une archive ZIP vers le Stockage Blob Azure à l’aide de la classe CloudBlockBlob dans la bibliothèque cliente Stockage Azure pour .NET. Cet exemple présuppose que l’archive ZIP a déjà été écrite dans un objet de flux.
string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl"; Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob = new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl)); await blockBob.UploadFromStreamAsync(stream);
Validez la soumission de version d’évaluation du package en exécutant la méthode suivante. L’Espace partenaires sera ainsi informé que vous avez terminé votre soumission et que vos mises à jour doivent maintenant être appliquées à votre compte.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit
Vérifiez l’état de validation en exécutant la méthode suivante pour obtenir l’état de la soumission de version d’évaluation du package.
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status
Pour confirmer l’état de la soumission, vérifiez la valeur d’état dans le corps de la réponse. Cette valeur doit passer de CommitStarted à PreProcessing, si la requête réussit, ou CommitFailed en cas d’erreurs dans la requête. En cas d’erreur, le champ statusDetails contient des détails supplémentaires sur cette dernière.
Une fois la validation terminée, la soumission est envoyée au Store pour ingestion. Vous pouvez continuer à suivre le déroulement de la soumission en utilisant la méthode précédente ou en vous rendant dans l’Espace partenaires.
Exemples de code
Les articles suivants fournissent des exemples de code détaillés qui montrent comment créer une soumission de version d’évaluation de package dans plusieurs langages de programmation différents :
Module PowerShell StoreBroker
Au lieu d’appeler directement l’API de soumission au Microsoft Store, nous fournissons également un module PowerShell open-source qui implémente une interface de ligne de commande parallèlement à l’API. Ce module s’appelle StoreBroker. Vous pouvez l’utiliser pour gérer votre application, la version d’évaluation et des soumissions de modules complémentaires à partir de la ligne de commande au lieu d’appeler directement l’API de soumission au Microsoft Store. Vous pouvez aussi simplement parcourir la source pour voir d’autres exemples sur la façon d’appeler cette API. Le module StoreBroker est fréquemment utilisé au sein de Microsoft comme principal moyen de soumettre des applications internes au Store.
Pour plus d’informations, consultez notre page StoreBroker sur GitHub.
Gérer un déploiement progressif de package pour une soumission de version d’évaluation du package
Vous pouvez déployer progressivement les packages mis à jour dans une soumission de version d’évaluation de package à un pourcentage des clients de votre application sur Windows 10 et Windows 11. Cela vous permet de surveiller les commentaires et les données analytiques des packages spécifiques pour vous assurer que vous êtes sûr de la mise à jour avant de la déployer plus largement. Vous pouvez modifier le pourcentage de déploiement (ou arrêter la mise à jour) d’une soumission publiée sans avoir à créer une nouvelle soumission. Pour plus d’informations, notamment des instructions sur l’activation et la gestion d’un déploiement progressif de packages dans l’Espace partenaires, consultez cet article.
Pour activer par programme un déploiement progressif de package pour une soumission de version d’évaluation de package, suivez ce processus à l’aide de méthodes dans l’API de soumission du Microsoft Store :
- Créez une soumission de version d’évaluation de package ou obtenez une soumission de version d’évaluation de package.
- Dans les données de réponse, recherchez la ressource packageRollout , définissez le champ isPackageRollout sur true et définissez le champ packageRolloutPercentage sur le pourcentage des clients de votre application qui doivent obtenir les packages mis à jour.
- Transmettez les données de soumission de version d’évaluation du package mises à jour à la mise à jour d’une méthode de soumission de version d’évaluation du package.
Une fois le déploiement progressif d’un package activé pour une soumission de version d’évaluation du package, vous pouvez utiliser les méthodes suivantes pour obtenir, mettre à jour, arrêter ou finaliser le déploiement progressif par programmation.
Method | URI | Description |
---|---|---|
GET | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/packagerollout | Obtenir les informations de déploiement progressif pour une soumission de version d’évaluation du package |
POST | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/updatepackagerolloutpercentage | Mettre à jour le pourcentage de déploiement progressif pour une soumission de version d’évaluation du package |
POST | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/haltpackagerollout | Arrêter le déploiement progressif d’une soumission de version d’évaluation du package |
POST | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/finalizepackagerollout | Finaliser le déploiement progressif d’une soumission de version d’évaluation de package |
Ressources de données
Les méthodes de l’API de soumission du Microsoft Store pour la gestion des soumissions de versions d’évaluation de package utilisent les ressources de données JSON suivantes.
Ressource de soumission de version d’évaluation
Cette ressource décrit une soumission de version d’évaluation de package.
{
"id": "1152921504621243649",
"flightId": "cd2e368a-0da5-4026-9f34-0e7934bc6f23",
"status": "PendingCommit",
"statusDetails": {
"errors": [],
"warnings": [],
"certificationReports": []
},
"flightPackages": [
{
"fileName": "newPackage.appx",
"fileStatus": "PendingUpload",
"id": "",
"version": "1.0.0.0",
"languages": ["en-us"],
"capabilities": [],
"minimumDirectXVersion": "None",
"minimumSystemRam": "None"
}
],
"packageDeliveryOptions": {
"packageRollout": {
"isPackageRollout": false,
"packageRolloutPercentage": 0.0,
"packageRolloutStatus": "PackageRolloutNotStarted",
"fallbackSubmissionId": "0"
},
"isMandatoryUpdate": false,
"mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
},
"fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/8b389577-5d5e-4cbe-a744-1ff2e97a9eb8?sv=2014-02-14&sr=b&sig=wgMCQPjPDkuuxNLkeG35rfHaMToebCxBNMPw7WABdXU%3D&se=2016-06-17T21:29:44Z&sp=rwl",
"targetPublishMode": "Immediate",
"targetPublishDate": "",
"notesForCertification": "No special steps are required for certification of this app."
}
Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
id | string | ID de la soumission. |
flightId | string | ID de la version d’évaluation du package à laquelle la soumission est associée. |
statut | string | État de la soumission. Il peut s’agir de l’une des valeurs suivantes :
|
statusDetails | object | Ressource de détails sur l’état qui contient des détails supplémentaires sur l’état de la soumission, y compris des informations sur les erreurs éventuelles. |
flightPackages | tableau | Contient des ressources de package de version d’évaluation qui fournissent des détails sur chaque package dans la soumission. |
packageDeliveryOptions | object | Ressource d’options de remise de package qui contient le déploiement progressif du package et les paramètres de mise à jour obligatoires de la soumission. |
fileUploadUrl | string | URI de signature d’accès partagé (SAS) pour le téléchargement de packages pour la soumission. Si vous ajoutez de nouveaux packages pour la soumission, téléchargez l’archive ZIP qui contient les packages vers cet URI. Pour plus d’informations, consultez Créer une soumission de version d’évaluation de package. |
targetPublishMode | string | Mode de publication de la soumission. Il peut s’agir de l’une des valeurs suivantes :
|
targetPublishDate | string | Date de publication de la soumission au format ISO 8601, si le targetPublishMode est défini sur SpecificDate. |
notesForCertification | string | Fournit des informations supplémentaires pour les testeurs de certification, telles que les informations d’identification du compte de test et les étapes d’accès et de vérification des fonctionnalités. Pour plus d’informations, consultez Notes pour la certification. |
Ressource de détails de l’état
Cette ressource contient des détails supplémentaires sur l’état d’une soumission. Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
erreurs | object | Tableau de ressources de détails de l’état qui contient des détails d’erreur pour la soumission. |
Avertissements | object | Tableau de ressources de détails de l’état qui contient des détails d’avertissement pour la soumission. |
certificationReports | object | Tableau de ressources du rapport de certification qui donnent accès aux données du rapport de certification pour la soumission. Vous pouvez examiner ces rapports pour plus d’informations si la certification échoue. |
Ressource de détails de l’état
Cette ressource contient des informations supplémentaires sur les erreurs ou avertissements associés concernant une soumission. Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
code | string | Code d’état d’une soumission qui décrit le type d’erreur ou d’avertissement. |
details | string | Message contenant plus de détails sur le problème. |
Ressource de rapport de certification
Cette ressource donne accès aux données du rapport de certification pour une soumission. Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
date | string | La date et l’heure du rapport sont générées au format ISO 8601. |
reportUrl | string | URL permettant d’accéder au rapport. |
Ressource de package de version d’évaluation
Cette ressource fournit des détails sur un package dans une soumission.
{
"flightPackages": [
{
"fileName": "newPackage.appx",
"fileStatus": "PendingUpload",
"id": "",
"version": "1.0.0.0",
"languages": ["en-us"],
"capabilities": [],
"minimumDirectXVersion": "None",
"minimumSystemRam": "None"
}
],
}
Cette ressource a les valeurs suivantes.
Remarque
Lorsque vous appelez la mise à jour d’une méthode de soumission de version d’évaluation du package, seuls les valeurs fileName, fileStatus, minimumDirectXVersion et minimumSystemRam de cet objet sont requises dans le corps de la requête. Les autres valeurs sont remplies par l’Espace partenaires.
Valeur | Type | Description |
---|---|---|
fileName | string | Nom du package. |
fileStatus | string | État du package. Il peut s’agir de l’une des valeurs suivantes :
|
id | string | ID qui identifie de façon unique le package. Cette valeur est utilisée par l’Espace partenaires. |
version | chaîne | Version du package d’application. Pour plus d’informations, consultez Numéro de version du package. |
architecture | string | Architecture du package d’application (par exemple, ARM). |
languages | tableau | Tableau de codes de langue pour les langues prises en charge par l’application. Pour plus d’informations, consultez Pour plus d’informations, consultez Langues prises en charge. |
capabilities | tableau | Tableau de fonctionnalités requises par le package. Pour plus d’informations sur les fonctionnalités, consultez les déclarations de fonctionnalités d’application. |
minimumDirectXVersion | string | Version minimale de DirectX prise en charge par le package d’application. Cela ne peut être défini que pour les applications qui ciblent Windows 8.x ; elle est ignorée pour les applications qui ciblent d’autres versions. Il peut s’agir de l’une des valeurs suivantes :
|
minimumSystemRam | string | Ram minimale requise par le package d’application. Cela ne peut être défini que pour les applications qui ciblent Windows 8.x ; elle est ignorée pour les applications qui ciblent d’autres versions. Il peut s’agir de l’une des valeurs suivantes :
|
Ressource options de remise de package
Cette ressource contient des paramètres de déploiement de package progressifs et de mise à jour obligatoire pour la soumission.
{
"packageDeliveryOptions": {
"packageRollout": {
"isPackageRollout": false,
"packageRolloutPercentage": 0.0,
"packageRolloutStatus": "PackageRolloutNotStarted",
"fallbackSubmissionId": "0"
},
"isMandatoryUpdate": false,
"mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
},
}
Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
packageRollout | object | Ressource de déploiement de package qui contient des paramètres de déploiement de package progressifs pour la soumission. |
isMandatoryUpdate | booléen | Indique si vous souhaitez traiter les packages de cette soumission comme obligatoires pour l’installation automatique des mises à jour d’application. Pour plus d’informations sur les packages obligatoires pour l’installation automatique des mises à jour d’application, consultez Télécharger et installer les mises à jour de package pour votre application. |
mandatoryUpdateEffectiveDate | date | Date et heure auxquelles les packages de cette soumission deviennent obligatoires, au format ISO 8601 et au fuseau horaire UTC. |
Ressource de déploiement de package
Cette ressource contient des paramètres de déploiement de package progressifs pour la soumission. Cette ressource a les valeurs suivantes.
Valeur | Type | Description |
---|---|---|
isPackageRollout | booléen | Indique si le déploiement progressif du package est activé pour la soumission. |
packageRolloutPercentage | virgule flottante | Pourcentage d’utilisateurs qui recevront les packages dans le déploiement progressif. |
packageRolloutStatus | string | Une des chaînes suivantes qui indique l’état du déploiement progressif du package :
|
fallbackSubmissionId | string | ID de la soumission qui sera reçue par les clients qui n’obtiennent pas les packages de déploiement progressif. |
Remarque
Les valeurs packageRolloutStatus et fallbackSubmissionId sont affectées par l’Espace partenaires et ne sont pas destinées à être définies par le développeur. Si vous incluez ces valeurs dans un corps de requête, ces valeurs sont ignorées.
Énumérations
Ces méthodes utilisent les énumérations suivantes.
Code d’état de la soumission
Les codes suivants représentent l’état d’une soumission.
Code | Description |
---|---|
None | Aucun code n’a été spécifié. |
InvalidArchive | L’archive ZIP contenant le package n’est pas valide ou son format d’archive n’est pas reconnu. |
MissingFiles | L’archive ZIP ne contient pas tous les fichiers répertoriés dans vos données de soumission, ou alors ils se trouvent à un emplacement erroné dans l’archive. |
PackageValidationFailed | Un ou plusieurs packages de votre soumission n’ont pas pu être validés. |
InvalidParameterValue | L’un des paramètres du corps de la requête n’est pas valide. |
InvalidOperation | L’opération tentée n’est pas valide. |
InvalidState | L’opération tentée n’est pas valide pour l’état actuel de la version d’évaluation de package. |
ResourceNotFound | Le fichier de la version d’évaluation de package spécifié est introuvable. |
ServiceError | Une erreur de service interne a empêché le succès de la requête. Essayez à nouveau. |
ListingOptOutWarning | Le développeur a supprimé une liste d’une soumission précédente ou n’a pas inclus les informations de référencement prises en charge par le package. |
ListingOptInWarning | Le développeur a ajouté une liste. |
UpdateOnlyWarning | Le développeur essaie d’insérer quelque chose qui dispose seulement d’une prise en charge des mises à jour. |
Other | La soumission est dans un état non reconnu ou non catégorisé. |
PackageValidationWarning | Le processus de validation du package a donné lieu à un avertissement. |
Rubriques connexes
- Créer et gérer des soumissions à l’aide des services du Microsoft Store
- Gérer les versions d’évaluation de package à l’aide de l’API de soumission au Microsoft Store
- Obtenir une soumission de version d’évaluation de package
- Créer une soumission de version d’évaluation du package
- Mettre à jour une soumission de version d’évaluation du package
- Valider une soumission de version d’évaluation de package
- Supprimer une soumission de version d’évaluation de package
- Obtenir l’état d’une soumission de version d’évaluation du package