Requisitos del paquete de aplicación para la aplicación MSIX

Requisitos

Siga estas instrucciones para preparar los paquetes de la aplicación para su envío a Microsoft Store.

Antes de compilar el paquete de la aplicación para Microsoft Store

Asegúrese de probar la aplicación con el Kit para la certificación de aplicaciones en Windows. También se recomienda probar la aplicación en diferentes tipos de hardware. Tenga en cuenta que hasta que certifiquemos su aplicación y la pongamos a disposición en Microsoft Store, solo podrá instalarse y ejecutarse en equipos que dispongan de licencias de desarrollador.

Compilación del paquete de la aplicación mediante Microsoft Visual Studio

Si usa Microsoft Visual Studio como entorno de desarrollo, ya tiene herramientas integradas que hacen que la creación de un paquete de aplicación sea un proceso rápido y sencillo. Para más información, vea Empaquetado de aplicaciones.

Nota:

Asegúrese de que todos los nombres de archivo usen ANSI.

Al crear el paquete en Visual Studio, asegúrese de que ha iniciado sesión con la misma cuenta asociada a la cuenta de desarrollador. Algunas partes del manifiesto del paquete tienen detalles específicos relacionados con su cuenta. Esta información se detecta y se agrega automáticamente. Sin la información adicional agregada al manifiesto, es posible que encuentre errores de carga de paquetes.

Al compilar paquetes UWP de la aplicación, Visual Studio puede crear un archivo .msix o appx, o un archivo .msixupload o .appxupload. Para las aplicaciones UWP, le recomendamos que cargue siempre el archivo .msixupload o .appxupload en la página Paquetes. Para obtener más información sobre cómo empaquetar aplicaciones UWP para la Tienda, consulte Empaquetado de una aplicación UWP con Visual Studio.

Los paquetes de la aplicación no tienen que estar firmados con un certificado raíz en una entidad de certificación de confianza.

Lotes de aplicaciones

En el caso de las aplicaciones UWP, Visual Studio puede generar un lote de aplicaciones (.msixbundle o .appxbundle) para reducir el tamaño de la aplicación que descargan los usuarios. Esto puede ser útil si ha definido activos específicos de un idioma, una variedad de activos a escala de imágenes o activos que se aplican a versiones específicas de Microsoft DirectX.

Nota:

 Un lote de aplicaciones puede contener los paquetes para todas las arquitecturas.

Con un lote de aplicaciones, un usuario solo descargará los archivos pertinentes, en lugar de todos los recursos posibles. Para obtener más información sobre los lotes de aplicaciones, consulte Empaquetado de aplicaciones y Empaquetado de una aplicación UWP con Visual Studio.

Compilación manual del paquete de la aplicación

Si no usa Visual Studio para crear el paquete, debe crear manualmente el manifiesto del paquete.

Asegúrese de revisar la documentación del manifiesto del paquete de la aplicación para obtener los detalles y requisitos completos del manifiesto. El manifiesto debe seguir el esquema del manifiesto del paquete para pasar la certificación.

El manifiesto debe incluir información específica sobre la cuenta y la aplicación. Puede encontrar esta información consultando Ver detalles de identidad de la aplicación en la sección Gestión de productos de la página general de su aplicación en el panel de control.

Nota:

 Los valores del manifiesto distinguen mayúsculas de minúsculas. Los espacios y otros signos de puntuación también deben coincidir. Introduzca los valores cuidadosamente y revíselos para asegurarse de que son correctos.

Los lotes de aplicaciones (.msixbundle o .appxbundle) usan un manifiesto diferente. Revise la documentación del manifiesto del lote para obtener los detalles y los requisitos de los manifiestos del lote de aplicaciones. Tenga en cuenta que en un .msixbundle o .appxbundle, el manifiesto de cada paquete incluido debe usar los mismos elementos y atributos, excepto para el atributo ProcessorArchitecture del elemento Identity.

Sugerencia

 Asegúrese de ejecutar el Kit para la certificación de aplicaciones en Windows antes de enviar los paquetes. Esto puede ayudarle a determinar si el manifiesto tiene algún problema que pueda provocar errores de certificación o envío.

Requisitos de formato del paquete

Los paquetes de la aplicación deben cumplir estos requisitos.

Propiedad del paquete de la aplicación Requisito
Tamaño de paquete .msixbundle o .appxbundle: 25 GB máximo por lote
Paquetes .msix o .appx destinados a Windows 10 o Windows 11: 25 GB máximo por paquete
Bloqueo de hashes de mapa Algoritmo SHA2-256

Versiones compatibles

Para las aplicaciones UWP, todos los paquetes deben tener como destino una versión de Windows 10 o Windows 11 compatible con la Tienda. Las versiones que admite el paquete deben indicarse en los atributos MinVersion y MaxVersionTested del elemento TargetDeviceFamily del manifiesto de la aplicación.

Archivo XML StoreManifest

StoreManifest.xml es un archivo de configuración opcional que se puede incluir en los paquetes de la aplicación. Su propósito es habilitar características, como declarar su aplicación como aplicación de dispositivo de Microsoft Store o declarar requisitos de los que depende un paquete para ser aplicable a un dispositivo, que el manifiesto del paquete no cubre. Si se usa, StoreManifest.xml se envía con el paquete de la aplicación y debe estar en la carpeta raíz del proyecto principal de la aplicación. Para obtener más información, consulte Esquema de StoreManifest.

Numeración de la versión del paquete

Cada paquete que proporcione debe tener un número de versión (proporcionado como un valor en el atributo Version del elemento Package/Identity en el manifiesto de la aplicación). Microsoft Store aplica ciertas reglas relacionadas con los números de versión, que funcionan de forma algo diferente en distintas versiones del sistema operativo.

Nota:

Aunque este tema hace referencia a "paquetes", a menos que se indique, se aplican las mismas reglas a los números de versión para los archivos .msix/.appx y .msixbundle/.appxbundle.

Numeración de versiones para paquetes de Windows 10 y 11

Importante

Para los paquetes de Windows 10 o Windows 11 (UWP), la última sección (cuarta) del número de versión está reservada para el uso de Store y debe dejarse como 0 al compilar el paquete (aunque Store puede cambiar el valor de esta sección). Las demás secciones deben establecerse en un entero comprendido entre 0 y 65535 (excepto la primera sección, que no puede ser 0).

Al elegir un paquete para UWP del envío publicado, Microsoft Store siempre usará el paquete con la versión más alta que se aplique al dispositivo Windows 10 o Windows 11 del cliente. Esto le proporciona más flexibilidad y le permite controlar qué paquetes se ofrecerán a los clientes en determinados tipos de dispositivos. Es importante destacar que puede enviar estos paquetes en cualquier orden; no está limitado a proporcionar paquetes con versiones superiores en cada envío posterior.

Puedes proporcionar varios paquetes UWP con el mismo número de versión. Sin embargo, los paquetes que comparten un número de versión no pueden tener también la misma arquitectura, porque la identidad completa que Store utiliza para cada uno de sus paquetes debe ser única. Para obtener más información, consulte Identity.

Cuando se proporcionan varios paquetes UWP que usan el mismo número de versión, la arquitectura (en el orden x64, x86, Arm, neutral) se usará para decidir cuál es de mayor rango (cuando Store determina qué paquete proporcionar al dispositivo de un cliente). Cuando se clasifican agrupaciones de aplicaciones que usan el mismo número de versión, se tiene en cuenta la clasificación de arquitectura más alta dentro de la agrupación: una agrupación de aplicaciones que contiene un paquete x64 tendrá una clasificación superior a la que solo contiene un paquete x86.

Esto le ofrece mucha flexibilidad para evolucionar la aplicación a lo largo del tiempo. Puede cargar y enviar nuevos paquetes que utilicen números de versión más bajos para añadir compatibilidad con dispositivos Windows 10 o Windows 11 con los que no era compatible anteriormente, puede añadir paquetes con versiones más altas que tengan dependencias más estrictas para aprovechar las características del hardware o del sistema operativo, o puede añadir paquetes con versiones más altas que sirvan como actualizaciones para algunos o todos sus clientes existentes.

En el ejemplo siguiente se muestra cómo se puede administrar la numeración de versiones para entregar los paquetes previstos a los clientes en varios envíos.

Ejemplo: traslado a un único paquete a través de varios envíos

Windows 10 permite escribir un código base único que se ejecuta en todas partes. Esto facilita mucho el inicio de un nuevo proyecto entre plataformas. Sin embargo, por una serie de razones, es posible que no desee combinar bases de código existentes para crear un único proyecto de inmediato.

Puede utilizar las reglas de control de versiones de paquetes para trasladar gradualmente a sus clientes a un único paquete para la familia de dispositivos universal, mientras envía una serie de actualizaciones provisionales para familias de dispositivos específicas (incluidas las que aprovechan las API de Windows 10). En el ejemplo siguiente se muestra cómo se aplican las mismas normas de forma coherente en una serie de envíos para la misma aplicación.

Envío Contenido Experiencia del cliente
1 - Versión del paquete: 1.1.10.0
- Familia de dispositivos: Windows.Desktop, minVersion 10.0.10240.0
- Los dispositivos con Windows 10 y 11 Desktop compilación 10.0.10240.0 y posteriores obtendrán 1.1.10.0
- Otras familias de dispositivos no podrán comprar ni instalar la aplicación.
2 - Versión del paquete: 1.1.10.0
- Familia de dispositivos: Windows.Desktop, minVersion 10.0.10240.0

- Versión del paquete: 1.0.0.0
- Familia de dispositivos: Windows.Universal, minVersion 10.0.10240.0
- Los dispositivos con Windows 10 y 11 Desktop compilación 10.0.10240.0 y posteriores obtendrán 1.1.10.0
- Otras familias de dispositivos (que no sean de escritorio) recibirán la versión 1.0.0.0 cuando se introduzcan.
- Los dispositivos de escritorio que ya tengan instalada la aplicación no verán ninguna actualización (porque ya tienen la mejor versión disponible, 1.1.10.0, y son superiores a 1.0.0.0).
3 - Versión del paquete: 1.1.10.0
- Familia de dispositivos: Windows.Desktop, minVersion 10.0.10240.0

- Versión del paquete: 1.1.5.0
- Familia de dispositivos: Windows.Universal, minVersion 10.0.10250.0

- Versión del paquete: 1.0.0.0
- Familia de dispositivos: Windows.Universal, minVersion 10.0.10240.0
- Los dispositivos con Windows 10 y 11 Desktop compilación 10.0.10240.0 y posteriores obtendrán 1.1.10.0
- Otras familias de dispositivos (que no sean de escritorio) recibirán la versión 1.1.5.0 a partir de la versión 10.0.10250.0.
- Otras familias de dispositivos (sin escritorio) cuando se introducen con la compilación >=10.0.10240.0 y < 10.010250.0 obtendrán 1.1.0.0
- Los dispositivos de escritorio que ya tengan instalada la aplicación no verán ninguna actualización (porque ya tienen la mejor versión disponible, 1.1.10.0, que es superior a las versiones 1.1.5.0 y 1.0.0.0)
4 - Versión del paquete: 2.0.0.0
- Familia de dispositivos: Windows.Universal, minVersion 10.0.10240.0
- Todos los clientes de todas las familias de dispositivos con Windows 10 y 11 compilación v10.0.10240.0 y superiores recibirán el paquete 2.0.0.0

Nota:

 En todos los casos, los dispositivos de los clientes recibirán el paquete que tenga el número de versión más alto posible para el que cumplan los requisitos. Por ejemplo, en el tercer envío anterior, todos los dispositivos de escritorio obtendrán v1.1.10.0, incluso si tienen la versión del sistema operativo 10.0.10250.0 o posterior y, por tanto, también podrían aceptar v1.1.5.0. Dado que 1.1.10.0 es el número de versión más alto disponible para ellos, es el paquete que obtendrán.

Uso de la numeración de versiones para revertir a un paquete enviado previamente para nuevas adquisiciones

Si guarda copias de sus paquetes, tendrá la opción de revertir el paquete de su aplicación en Store a un paquete anterior de Windows 10 si descubre problemas con una versión. Se trata de una forma temporal de limitar las molestias a sus clientes mientras se toma su tiempo para solucionar el problema.

Para ello, cree un nuevo envío. Elimine el paquete problemático y cargue el paquete antiguo que quiere proporcionar en Store. Los clientes que ya hayan recibido el paquete que está revirtiendo seguirán teniendo el paquete problemático (ya que su paquete anterior tendrá un número de versión anterior). Pero esto impedirá que cualquier otra persona adquiera el paquete problemático, al tiempo que permitirá que la aplicación siga estando disponible en Store.

Para solucionar el problema para los clientes que ya han recibido el paquete problemático, puede enviar un nuevo paquete de Windows 10 que tenga un número de versión superior al del paquete defectuoso tan pronto como pueda. Una vez que ese envío pase el proceso de certificación, todos los clientes se actualizarán al nuevo paquete, ya que tendrá un número de versión superior.

Idiomas compatibles

Puede enviar aplicaciones a Microsoft Store en más de 100 idiomas.

Para obtener más información sobre cómo configurar idiomas en las aplicaciones, consulte Globalización y localización y Descripción de los lenguajes de perfil de usuario y los lenguajes de manifiesto de la aplicación. También tenemos un Kit de herramientas para aplicaciones multilingües para ayudarle a escribir aplicaciones que admiten varios idiomas.

Lista de idiomas admitidos

Estos son los idiomas que admite Microsoft Store. La aplicación debe ser compatible con al menos uno de estos idiomas.

Los códigos de idioma que no se incluyen aquí no son compatibles con la Tienda. Se recomienda no incluir paquetes destinados a códigos de idioma distintos de los enumerados a continuación; estos paquetes no se distribuirán a los clientes y pueden provocar retrasos o errores en la certificación.

Nombre del idioma Códigos de idioma admitidos
Árabe ar, ar-sa, ar-ae, ar-bh, ar-dz, ar-eg, ar-iq, ar-jo, ar-kw, ar-lb, ar-ly, ar-ma, ar-om, ar-qa, ar-sy, ar-tn, ar-ye
Afrikáans af, af-za
Albanés sq, sq-al
Amárico am, am-et
Armenio hy, hy-am
Asamés as, as-in
Azerbaiyano az-arab, az-arab-az, az-cyrl, az-cyrl-az, az-latn, az-latn-az
Vasco (España) eu, eu-es
Bielorruso be, be-by
Bengalí bn, bn-bd, bn-in
Bosnio bs, bs-cyrl, bs-cyrl-ba, bs-latn, bs-latn-ba
Búlgaro bg, bg-bg
Catalán ca, ca-es, ca-es-valencia
Cheroqui chr-cher, chr-cher-us, chr-latn
Chino (simplificado) zh-Hans, zh-cn, zh-hans-cn, zh-sg, zh-hans-sg
Chino (tradicional) zh-Hant, zh-hk, zh-mo, zh-tw, zh-hant-hk, zh-hant-mo, zh-hant-tw
Croata hr, hr-hr, hr-ba
Checo cs, cs-cz
Danés da, da-dk
Dari prs, prs-af, prs-arab
Neerlandés nl, nl-nl, nl-be
English en, en-au, en-ca, en-gb, en-ie, en-in, en-nz, en-sg, en-us, en-za, en-bz, en-hk, en-id, en-jm, en-kz, en-mt, en-my, en-ph, en-pk, en-tt, en-vn, en-zw, en-053, en-021, en-029, en-011, en-018, en-014
Estonio et, et-ee
Filipino fil, fil-latn, fil-ph
Finés fi, fi-fi
Francés fr, fr-be , fr-ca , fr-ch , fr-fr , fr-lu, fr-015, fr-cd, fr-ci, fr-cm, fr-ht, fr-ma, fr-mc, fr-ml, fr-re, frc-latn, frp-latn, fr-155, fr-029, fr-021, fr-011
Gallego gl, gl-es
Georgiano ka, ka-ge
Alemán de, de-at, de-ch, de-de, de-lu, de-li
Griego el, el-gr
Gujarati gu, gu-in
Hausa ha, ha-latn, ha-latn-ng
Hebreo he, he-il
Hindi hi, hi-in
Húngaro hu, hu-hu
Islandés is, is-is
Igbo ig-latn, ig-ng
Indonesio id, id-id
Inuktitut (latino) iu-cans, iu-latn, iu-latn-ca
Irlandés ga, ga-ie
isiXhosa xh, xh-za
isiZulu zu, zu-za
Italiano it, it-it, it-ch
Japonés ja , ja-jp
Canarés kn, kn-in
Kazajo kk, kk-kz
Jemer km, km-kh
Quiché quc-latn, qut-gt, qut-latn
Kinyarwanda rw, rw-rw
KiSwahili sw, sw-ke
Konkani kok, kok-in
Coreano ko, ko-kr
Kurdo ku-arab, ku-arab-iq
Kirguís ky-kg, ky-cyrl
Lao lo, lo-la
Letón lv, lv-lv
Lituano lt, lt-lt
Luxemburgués lb, lb-lu
Macedonio mk, mk-mk
Malayo ms, ms-bn, ms-my
Malayalam ml, ml-in
Maltés mt, mt-mt
Maori mi, mi-latn, mi-nz
Maratí mr, mr-in
Mongol (cirílico) mn-cyrl, mn-mong, mn-mn, mn-phag
Nepalí ne, ne-np
Noruego nb, nb-no, nn, nn-no, no, no-no,
Odia or, or-in
Persa fa, fa-ir
Polaco pl, pl-pl
Portugués (Brasil) pt-br
Portugués (Portugal) pt, pt-pt
Punjabi pa, pa-arab, pa-arab-pk, pa-deva, pa-in
Quechua quz, quz-bo, quz-ec, quz-pe
Rumano ro, ro-ro
Ruso ru , ru-ru
Gaélico escocés gd-gb, gd-latn
Serbio (latino) sr-Latn, sr-latn-cs, sr, sr-latn-ba, sr-latn-me, sr-latn-rs
Serbio (cirílico) sr-cyrl, sr-cyrl-ba, sr-cyrl-cs, sr-cyrl-me, sr-cyrl-rs
Sotho septentrional nso, nso-za
Setsuana tn, tn-bw, tn-za
Sindhi sd-arab, sd-arab-pk, sd-deva
Cingalés si, si-lk
Eslovaco sk, sk-sk
Esloveno sl, sl-si
Español es, es-cl, es-co, es-es, es-mx, es-ar, es-bo, es-cr, es-do, es-ec, es-gt, es-hn, es-ni, es-pa, es-pe, es-pr, es-py, es-sv, es-us, es-uy, es-ve, es-019, es-419
Sueco sv, sv-se, sv-fi
Tayiko (cirílico) tg-arab, tg-cyrl, tg-cyrl-tj, tg-latn
Tamil ta, ta-in
Tatar tt-arab, tt-cyrl, tt-latn, tt-ru
Telugu te, te-in
Tailandés th, th-th
Tigriña ti, ti-et
Turco tr, tr-tr
Turcomano tk-cyrl, tk-latn, tk-tm, tk-latn-tr, tk-cyrl-tr
Ucraniano uk, uk-ua
Urdu ur, ur-pk
Uigur ug-arab, ug-cn, ug-cyrl, ug-latn
Uzbeko (latino) uz, uz-cyrl, uz-latn, uz-latn-uz
Vietnamita vi, vi-vn
Galés cy, cy-gb
Wolof wo, wo-sn
Yoruba yo-latn, yo-ng