Publicar nuestra aplicación MSIX en la tienda de Microsoft
Con esta última entrada se completa esta serie. Vamos a ver cómo generar un paquete con el nuevo formato MSIX, preparado para publicar una aplicación en la tienda de Microsoft.
Recordamos las entradas anteriores.
Roadmap de las entradas
- Publicación de aplicaciones Delphi en la «Microsoft store» (conceptos generales)
- Publicar nuestra aplicación EXE (MSI) en la tienda
- Publicar nuestra aplicación MSIX en la tienda
Introducción
Como ya he comentado antes, el nuevo formato y preferido para publicar aplicaciones en la tienda de Microsoft son los empaquetados MSIX, que sustituyen a los antiguos APPX. Nos permite empaquetar aplicaciones Win32, WPF y Windows forms con un único formato moderno. Conserva la funcionalidad de los paquetes existentes y además habilita funciones modernas de empaquetado.
RAD Studio introdujo la generación automática de paquetes MSIX para sus aplicaciones Delphi y C++ Builder en verisones superiores a la 10.4.2. Y esta característica se puede usar tanto con VCL como con FMX.
Empaquetado en MSIX
Microsoft nos presenta MSIX como la solución moderna y de código abierto para superar este obstáculo. MSIX es un formato de empaquetado universal que:
- Desacopla las actualizaciones del sistema operativo, las aplicaciones y las personalizaciones del usuario.
- Permite un flujo continuo de código (continuous delivery) con despliegues predecibles, confiables y optimizados.
- Instala solo los archivos necesarios y ahorra espacio en disco y ancho de banda.
- Usa un contenedor que aísla la aplicación y garantiza seguridad, rendimiento estable y desinstalaciones limpias (evita el temido «machine rot» o deterioro progresivo del sistema por instalaciones sucias).
- Facilita la actualización de aplicaciones Win32 existentes al formato MSIX mediante la herramienta MSIX Packaging Tool.
Como característica claves de este formato podríamos nombrar:
- La fiabilidad
- Optimización del ancho de banda de la red
- Optimización del espacio en disco
Si queréis ampliar la lectura sobre este formato, podéis revisar este link (oficial de Microsoft) que habla con más detalle, y también este otro, más técnico y con una lista de recursos adicionales sobre este formato (vídeos, documentación, links,…)
Cómo generar un MSIX desde RAD Studio (adhoc)
Como hicimos en la entrada anterior, vamos a utilizar una aplicación ya existente para detallar el proceso de generación. En este caso, un widget de información sobre la CPU. Al igual que la anterior, es un pequeño widget de escritorio que me da información sobre la carga de la CPU y muestra algunos detalles sobre el procesador, arquitectura,…
Nos servirá, igual que en la entrada anterior, para ilustrar los siguientes pasos. Una vez que esté subida os adjuntaré el link a la tienda de Microsoft:

A la hora de generar el empaquetado desde el IDE de Delphi tenemos 2 opciones:
- adhoc: Esta opción está pensada para generar instalaciones en local para nuestras pruebas (QA). Para enviar directamente a clientes/usuarios sin necesidad de pasar por la Microsoft Store. Permite lo que llamamos una instalación sideloading.
- store: Es la opción para publicar en la Microsoft Store (a través del Partner Center). Este paquete está pensado para enviarse, no para instalarse localmente.
Por ahora nos vamos a centrar en la opción adhod, así que debemos continuar con los pasos siguientes:
Iconos y Versionado de la aplicación
Ya lo vimos en la entrada anterior, pero lo repasamos en esta. Debemos añadir opciones de versión a la aplicación desde Project options/Applicaction/Version. Rellenar los 2 primeros números de versión (yo recomiendo dejar los 2 últimos a cero), desactivar la opción de incrementar la build cada vez que se compila («Do not change build number») y por último desactivar todos los checks que definen características especiales de la Build (Debug build, Special build, Pre-release,…).
También deberíamos rellenar en Project options/Applicaction/Icons el icono para la aplicación (esto siempre) y los logos de nuestra aplicación (de 150px y 44 px).
Opciones de despliegue
Lo siguiente es acceder a Project options/Deployment/Provisioning, para definir las opciones de despliegue. Seleccionaremos:
- Target: release

- Build Type: Application Store
- Distribution type: Ad hoc.
Y rellenamos los datos del certificado. Para nuestra pruebas, ya vimos en la entrada anterior cómo generar uno desde el propio entorno de Delphi. Guardamos estas opciones.
Ahora ya podemos realizar el Build del proyecto y acceder a Project / Deployment y lanzar el Deploy.

Una vez acabado el proceso, como salida tenemos un paquete de instalación con extensión .MSIX. Con este fichero ya tenemos un instalable para distribuir.
Desplegar un instalable sobre la tienda
Lo primero que debemos hacer es «reservar» el nombre de la aplicación en nuestra cuenta de «Dev Center». En mi caso voy a reservar el nombre «Widget Información CPU». Una vez ese paso está completado, podemos acceder a la información completa de la aplicación. A continuación os muestra los datos del Widget.

Estos datos serán lo que deberemos rellenar en la sección de Provisioning de nuestro proyecto:

Ahora vamos al Deployment (igual que antes) y generamos un Deploy.
Una vez generado el paquete .MSIX ya podemos subirlo a la «Windows Store». Al acabar la subida, se validará desde la tienda el paquete que hemos subido y se mostrará la información asociada a él. A continuación os muestro la información que se muestra para la aplicación que acabo de subir.
Podeís ver información al respecto en este link de la docWiki de Embarcadero.

Para finalizar la publicación de la aplicación, deberéis completar toda la información necesaria y que ya comenté en anteriores entradas. Descripciones, idiomas soportados, imágenes, categorías de edad, tipo de licencia,… Toda la información que después se muestra en la tienda a los usuarios.
Hasta aquí esta entrada y la serie. Espero que hayan sido útiles para los que estáis pensando en publicar.
Como siempre, cualquier comentario, duda o sugerencia será bienvenida.
Hasta la próxima.












Hasta aquí esta entrada, como siempre los comentarios, sugerencias, y demás siempre son bienvenidas.

El código fuente 








