Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La API de envío de Microsoft Store proporciona métodos que puedes usar para administrar vuelos de paquetes para tus aplicaciones, incluidas las implementaciones graduales. Para obtener una introducción a la API de envío de Microsoft Store, incluidos los requisitos previos para usar la API, consulta Crear y administrar envíos mediante los servicios de Microsoft Store.
Importante
Si usas la API de envío de Microsoft Store para crear un envío para un vuelo de paquetes, asegúrate de hacer más cambios en el envío exclusivamente a través de la API, en lugar del Centro de Partners. Si usa el panel para cambiar un envío que creó originalmente mediante la API, ya no podrá cambiar ni confirmar ese envío mediante la API. En algunos casos, el envío podría dejarse en un estado de error en el que no puede continuar en el proceso de envío. Si esto ocurre, debe eliminar el envío y crear un nuevo envío.
Métodos para gestionar envíos de paquetes de vuelo
Utilice los siguientes métodos para obtener, crear, actualizar, confirmar o eliminar un envío de vuelo de paquete. Para poder usar estos métodos, el paquete flight ya debe existir en el Centro de Socios. Puedes crear un paquete piloto en el Centro de socios o usando los métodos de la API de envío de Microsoft Store descritos en Administrar paquetes piloto.
Método | URI | Descripción |
---|---|---|
OBTENER | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Obtener una presentación de vuelo de paquete existente |
OBTENER | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status | Obtener el estado de un envío de paquete de lanzamiento existente |
PUBLICACIÓN | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions | Crear un nuevo envío de vuelo de paquete |
PON | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Actualizar un envío de vuelo de paquete existente |
PUBLICACIÓN | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit | Realizar una nueva o actualizada presentación de vuelo de paquete |
ELIMINAR | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId} | Eliminar un envío de vuelo de paquete |
Crear un envío de paquete por vuelo
Para crear una presentación para un paquete de vuelo, siga este proceso.
Si aún no lo ha hecho, complete los requisitos previos descritos en Crear y administrar envíos mediante los servicios de Microsoft Store, incluida la asociación de una aplicación de Azure AD con su cuenta del Centro de partners y la obtención del identificador y la clave de cliente. Sólo tienes que hacer esto una vez; después de tener el identificador y la clave de cliente, puede reutilizarlos en cualquier momento que necesite crear un nuevo token de acceso de Azure AD.
Obtener un token de acceso de Azure AD. Debes pasar este token de acceso a los métodos de la API de envío de aplicaciones de Microsoft Store. Después de obtener un token de acceso, tiene 60 minutos para usarlo antes de que expire. Una vez que expire el token, puede obtener uno nuevo.
Crear un envío de paquete piloto ejecutando el siguiente método en la API de envío de Microsoft Store. Este método crea un nuevo envío en curso, que es una copia del último envío publicado.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions
El cuerpo de la respuesta contiene un recurso de envío de vuelo que incluye el identificador del nuevo envío, el URI de firma de acceso compartido (SAS) para subir paquetes al Azure Blob Storage para el envío, y los datos del nuevo envío (incluidos todos los listados e información de precios).
Nota:
Un URI de SAS proporciona acceso a un recurso seguro en Azure Storage sin necesidad de claves de cuenta. Para obtener información general sobre los URI de SAS y su uso con Azure Blob Storage, consulte firmas de acceso compartido, parte 1: Descripción del modelo de SAS y firmas de acceso compartido, parte 2: Creación y uso de una SAS con Blob Storage.
Si usted está agregando nuevos paquetes para la entrega, prepare los paquetes y agréguelos a un archivo ZIP.
Revise el envío de piloto datos con los cambios necesarios para el nuevo envío y ejecute el siguiente método para actualizar el envío del paquete piloto.
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}
Nota:
Si va a agregar nuevos paquetes para el envío, asegúrese de actualizar los datos de envío para hacer referencia al nombre y la ruta de acceso relativa de estos archivos en el archivo ZIP.
Si va a agregar nuevos paquetes para la entrega, cargue el archivo ZIP en Azure Blob Storage mediante el URI de SAS que se te proporcionó en el cuerpo de la respuesta del método POST que usaste anteriormente. Hay diferentes bibliotecas de Azure que puede usar para hacerlo en una variedad de plataformas, entre las que se incluyen:
- Biblioteca Cliente de Azure Storage para .NET
- SDK de Azure Storage para Java
- SDK de Azure Storage para Python
En el ejemplo de código de C# siguiente se muestra cómo cargar un archivo ZIP en Azure Blob Storage mediante la clase CloudBlockBlob en la biblioteca cliente de Azure Storage para .NET. En este ejemplo se supone que el archivo ZIP ya se ha escrito en un objeto de secuencia.
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);
Comprometer el envío del paquete de vuelo ejecutando el siguiente método. Esto avisará al Centro de asociados que ha completado su envío y que las actualizaciones deben aplicarse ahora a su cuenta.
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/commit
Compruebe el estado del commit ejecutando el método siguiente para obtener el estado de la remesa de paquete.
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/status
Para confirmar el estado del envío, revise el valor del estado en el cuerpo de la respuesta. Este valor debe cambiar de CommitStarted a PreProcessing si la solicitud tiene éxito o a CommitFailed si hay errores en la solicitud. Si hay errores, el campo statusDetails contiene más detalles sobre el error.
Una vez completado correctamente el commit, el envío se envía a la tienda para el procesamiento. Puedes seguir supervisando el progreso del envío mediante el método anterior o visitando el Centro de partners.
Ejemplos de código
En los artículos siguientes se proporcionan ejemplos de código detallados que muestran cómo crear un envío de paquete piloto en varios lenguajes de programación diferentes:
Módulo de PowerShell StoreBroker
Como alternativa a llamar directamente a la API de envío de Microsoft Store, también proporcionamos un módulo de PowerShell de código abierto que implementa una interfaz de línea de comandos sobre la API. Este módulo se denomina StoreBroker. Puedes usar este módulo para administrar los envíos de aplicaciones, vuelos y complementos desde la línea de comandos en lugar de llamar directamente a la API de envío de Microsoft Store, o simplemente puedes examinar el origen para ver más ejemplos de cómo llamar a esta API. El módulo StoreBroker se usa activamente en Microsoft como la forma principal de enviar muchas aplicaciones de primera entidad a la Tienda.
Para obtener más información, consulte nuestra página de StoreBroker en GitHub.
Administrar un lanzamiento gradual de paquetes para un envío controlado de paquete
Puedes implementar gradualmente los paquetes actualizados en un envío de paquete piloto a un porcentaje de los clientes de la aplicación en Windows 10 y Windows 11. Esto le permite supervisar los comentarios y los datos analíticos de los paquetes específicos para asegurarse de que está seguro de la actualización antes de implementarla de forma más amplia. Puede cambiar el porcentaje de lanzamiento (o detener la actualización) de un envío publicado sin tener que crear un nuevo envío. Para obtener más información, incluidas las instrucciones para habilitar y administrar un lanzamiento gradual de paquetes en el Centro de partners, consulte este artículo.
Para habilitar de forma programática el despliegue gradual de un paquete en un envío piloto, siga este procedimiento utilizando los métodos de la API de envío de Microsoft Store:
- Crear un envío de vuelo de paquete o obtener un envío de vuelo de paquete.
- En los datos de respuesta, busque el recurso packageRollout, establezca el campo isPackageRollout en true y establezca el campo packageRolloutPercentage en el porcentaje de los clientes de la aplicación que deben obtener los paquetes actualizados.
- Pase los datos de envío de paquetes piloto actualizados al método actualizar un envío de paquete piloto.
Una vez habilitado un despliegue gradual de paquetes para un envío de vuelo de paquete, puedes usar los métodos siguientes para obtener, actualizar, detener o finalizar el despliegue gradual programáticamente.
Método | URI | Descripción |
---|---|---|
OBTENER | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/packagerollout | Obtener la información de implementación gradual de un envío de paquete |
PUBLICACIÓN | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/updatepackagerolloutpercentage | Actualizar el porcentaje de lanzamiento gradual de un envío de paquete piloto |
PUBLICACIÓN | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/haltpackagerollout | Detener el lanzamiento gradual de un envío de paquete piloto |
PUBLICACIÓN | https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/flights/{flightId}/submissions/{submissionId}/finalizepackagerollout | Finalizar el lanzamiento gradual de un envío de paquete piloto |
Recursos de datos
Los métodos de la API de envío de Microsoft Store para administrar envíos de paquetes piloto usan los siguientes recursos de datos JSON.
Recurso para el envío de vuelos
Este recurso describe una presentación de paquete de vuelo.
{
"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."
}
Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
identificación | cuerda / cadena | Identificador del envío. |
flightId | cuerda / cadena | Identificador del vuelo de paquete al que está asociado el envío. |
estado | cuerda / cadena | Estado del envío. Este puede ser uno de los siguientes valores:
|
detalles del estado | objeto | Un estado detalla el recurso que contiene detalles adicionales sobre el estado del envío, incluida la información sobre los errores. |
flightPackages | arreglo | Contiene recursos del paquete de vuelo que proporcionan detalles sobre cada paquete del envío. |
opcionesDeEntregaDePaquetes | objeto | Un recurso de opciones de entrega de paquetes que contiene el despliegue gradual de paquetes y las opciones de actualización obligatoria para la presentación. |
fileUploadUrl | cuerda / cadena | URI de firma de acceso compartido (SAS) para subir paquetes para la presentación. Si va a agregar nuevos paquetes para el envío, cargue el archivo ZIP que contiene los paquetes a este URI. Para obtener más información, consulta Crear una propuesta de vuelo de paquete. |
modoDePublicaciónObjetivo | cuerda / cadena | Modo de publicación de la presentación. Este puede ser uno de los siguientes valores:
|
fechaObjetivoDePublicación | cuerda / cadena | La fecha de publicación del envío en formato ISO 8601, si el modo de publicación objetivo (targetPublishMode) está establecido en una fecha específica (SpecificDate). |
notasParaCertificación | cuerda / cadena | Proporciona información adicional para los evaluadores de certificación, como las credenciales de la cuenta de prueba y los pasos para acceder a las características y comprobar. Para obtener más información, consulte las Notas para la certificación . |
Recurso de detalles de estado
Este recurso contiene detalles adicionales sobre el estado de un envío. Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
Errores | objeto | Conjunto de recursos de detalles de estado que contienen detalles de error de la presentación. |
Advertencias | objeto | Conjunto de recursos de detalles de estado que contienen detalles de advertencia para la presentación. |
informes de certificación | objeto | Conjunto de recursos relacionados con el informe de certificación que proporcionan acceso a los datos del informe de certificación para la presentación. Puede examinar estos informes para obtener más información si se produce un error en la certificación. |
Recurso detallado de estado
Este recurso proporciona información adicional sobre cualquier error o advertencia relacionada con una presentación. Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
código | cuerda / cadena | Código de estado de envío que describe el tipo de error o advertencia. |
Detalles | cuerda / cadena | Mensaje con más detalles sobre el problema. |
Informe de certificación de recursos
Este recurso proporciona acceso a los datos del informe de certificación para un envío. Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
fecha | cuerda / cadena | Fecha y hora en que se generó el informe, en formato ISO 8601. |
URL de informe | cuerda / cadena | Dirección URL en la que puede acceder al informe. |
Recurso de paquete de vuelo
Este recurso proporciona detalles sobre un paquete en un envío.
{
"flightPackages": [
{
"fileName": "newPackage.appx",
"fileStatus": "PendingUpload",
"id": "",
"version": "1.0.0.0",
"languages": ["en-us"],
"capabilities": [],
"minimumDirectXVersion": "None",
"minimumSystemRam": "None"
}
],
}
Este recurso tiene los siguientes valores.
Nota:
Al llamar al método de actualización de envío de paquete piloto, solo los valores de fileName, fileStatus, minimumDirectXVersiony mínimoSystemRam de este objeto son necesarios en el cuerpo de la solicitud. Los demás valores serán rellenados por el Centro de Partners.
Importancia | Tipo | Descripción |
---|---|---|
Nombre del archivo | cuerda / cadena | Nombre del paquete. |
estado del archivo | cuerda / cadena | Estado del paquete. Este puede ser uno de los siguientes valores:
|
identificación | cuerda / cadena | Identificador que identifica de forma única el paquete. Este valor lo usa el Centro de partners. |
Versión | cuerda / cadena | Versión del paquete de la aplicación. Para obtener más información, consulte numeración de versión del paquete. |
arquitectura | cuerda / cadena | Arquitectura del paquete de la aplicación (por ejemplo, ARM). |
Idiomas | arreglo | Matriz de códigos de idioma para los idiomas que admite la aplicación. Para obtener más información, consulte Para obtener más información, consulte Idiomas compatibles. |
Capacidades | arreglo | Matriz de funcionalidades requeridas por el paquete. Para obtener más información sobre las funcionalidades, consulte Declaraciones de funcionalidad de la aplicación. |
versión mínima de DirectX | cuerda / cadena | Versión mínima de DirectX compatible con el paquete de la aplicación. Esto solo se puede establecer para aplicaciones destinadas a Windows 8.x; se omite para las aplicaciones que tienen como destino otras versiones. Este puede ser uno de los siguientes valores:
|
memoriaRAMmínimaDelSistema | cuerda / cadena | La memoria RAM mínima que se requiere para el paquete de la aplicación. Esto solo se puede establecer para aplicaciones destinadas a Windows 8.x; se omite para las aplicaciones que tienen como destino otras versiones. Este puede ser uno de los siguientes valores:
|
Recurso de opciones de entrega de paquetes
Este recurso contiene el despliegue gradual de paquetes y la configuración de actualización obligatoria para la presentación.
{
"packageDeliveryOptions": {
"packageRollout": {
"isPackageRollout": false,
"packageRolloutPercentage": 0.0,
"packageRolloutStatus": "PackageRolloutNotStarted",
"fallbackSubmissionId": "0"
},
"isMandatoryUpdate": false,
"mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
},
}
Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
packageRollout | objeto | Un recurso de despliegue de paquetes que contiene la configuración de lanzamiento gradual del paquete para la presentación. |
esActualizaciónObligatoria | booleano | Indica si quieres tratar los paquetes de esta remisión como obligatorios para la autoinstalación de actualizaciones de la aplicación. Para obtener más información sobre los paquetes obligatorios para las actualizaciones de aplicaciones autoinstalados, consulte Descargar e instalar actualizaciones de paquetes para la aplicación. |
fechaEfectivaDeActualizaciónObligatoria | fecha | Fecha y hora en que los paquetes de este envío son obligatorios, en formato ISO 8601 y zona horaria UTC. |
Recurso de despliegue de paquetes
Este recurso contiene ajustes de implementación gradual de paquetes para la presentación. Este recurso tiene los siguientes valores.
Importancia | Tipo | Descripción |
---|---|---|
isPackageRollout | booleano | Indica si el despliegue gradual de paquetes está habilitado para el envío. |
porcentajeDeDespliegueDelPaquete | flotante | Porcentaje de usuarios que recibirán los paquetes en el lanzamiento gradual. |
estado de despliegue del paquete | cuerda / cadena | Una de las siguientes cadenas que indica el estado del lanzamiento gradual de los paquetes:
|
fallbackSubmissionId | cuerda / cadena | Identificador del envío que recibirán los clientes que no obtengan los paquetes de lanzamiento gradual. |
Nota:
El packageRolloutStatus y el fallbackSubmissionId son valores que se asignan mediante el Centro de Socios, y no están destinados a ser establecidos por el desarrollador. Si incluye estos valores en un cuerpo de la solicitud, se omitirán estos valores.
Enumeraciones
Estos métodos usan las siguientes enumeraciones.
Código de estado de envío
Los códigos siguientes representan el estado de un envío.
Código | Descripción |
---|---|
Ninguno | No se especificó ningún código. |
ArchivoInválido | El archivo ZIP que contiene el paquete no es válido o tiene un formato de archivo no reconocido. |
MissingFiles | El archivo ZIP no tiene todos los archivos que se mostraron en los datos de envío o se encuentran en la ubicación incorrecta del archivo. |
ErrorDeValidacionDelPaquete | No se pudo validar uno o varios paquetes del envío. |
Valor de Parámetro No Válido | Uno de los parámetros del cuerpo de la solicitud no es válido. |
Operación no válida | La operación que intentó no es válida. |
Estado inválido | La operación que intentó no es válida para el estado actual del paquete de vuelo. |
RecursoNoEncontrado | No se encontró el paquete de vuelo especificado. |
Error de servicio | Un error interno del servicio impedía que la solicitud se realizara correctamente. Vuelva a intentar la solicitud. |
Advertencia de exclusión de listado | El desarrollador quitó un listado de un envío anterior o no incluyó información de listado admitida por el paquete. |
Advertencia para unirse a la lista | El desarrollador agregó una lista. |
UpdateOnlyWarning | El desarrollador está intentando insertar algo que solo tenga compatibilidad con actualizaciones. |
Otros | El envío está en un estado no reconocido o no clasificado. |
AdvertenciaDeValidaciónDePaquete | El proceso de validación del paquete produjo una advertencia. |
Temas relacionados
- Crear y administrar envíos mediante servicios de Microsoft Store
- Administrar los vuelos de paquete mediante la API de envío de Microsoft Store
- Obtener la solicitud de paquete de vuelo
- Crear una presentación de paquete de vuelo
- Actualizar la presentación de un paquete de vuelo
- Finalizar un envío de paquete de vuelo
- Eliminar un envío de vuelo de paquete
- Obtener el estado de un envío de vuelo de paquete