2DAM DI · Tarea
RA2,RA7 -Generar ejecutable. exe
Instrucciones
Objetivo: distribuir tu MiniOffice en Windows de dos formas: una versión portable y un instalador. El trabajo de RA7 incluye preparar el entorno, empaquetar los recursos, firmar el ejecutable, configurar el instalador, probar ambas distribuciones y publicar una versión descargable.
Parte de tu proyecto de clase. Entrega el repositorio con el código y la memoria en README.md, y enlaza la versión publicada en GitHub Releases con el portable y el instalador.
1. Prepara una compilación reproducible
- Prepara el entorno de Pipenv trabajado en clase. Las diapositivas usan Python 3.13: indica la versión con la que haces la entrega.
- Instala PySide6, PyInstaller y las demás dependencias de tu aplicación. Conserva
PipfileyPipfile.lock, y explica cómo crear el entorno y ejecutar el proyecto. - Comprueba el funcionamiento desde el código fuente. Identifica el archivo de entrada y todos los recursos necesarios: iconos, imágenes, ayuda y otros archivos.
2. Genera y prueba el ejecutable
Genera el .exe con PyInstaller en Windows. Personaliza el nombre y el icono, evita que se abra una consola junto a la interfaz e incluye los recursos que usa MiniOffice. Documenta las opciones --name, --icon, --noconsole y --add-data que correspondan a tu proyecto.
Conserva el archivo .spec y el comando de compilación. Explica qué contienen build/ y dist/, y de dónde sale el archivo que vas a distribuir.
Si eliges onefile, distribuye el ejecutable resultante. Si eliges onedir, conserva toda la carpeta generada y comprímela para su descarga: el .exe aislado no contiene todas sus dependencias.
Prueba la distribución fuera de la carpeta del proyecto y sin depender de tu entorno de desarrollo. Verifica el arranque, los iconos, Abrir/Guardar y las funciones principales. Indica el sistema donde lo has comprobado y cualquier requisito externo.
3. Firma la versión de prueba
- Genera en PowerShell un certificado autofirmado de tipo
CodeSigningCert. Localízalo en el almacén del usuario concertmgr.msc. - Exporta el certificado a un archivo
.pfxprotegido por contraseña. - Instala las herramientas de firma del SDK de Windows y localiza
signtool.exe. Firma el ejecutable que vas a distribuir siguiendo el ejemplo de clase. - Verifica la firma con
signtool verify /pa /vy en la pestaña «Firmas digitales» de las propiedades del archivo. Guarda capturas y explica el resultado, incluidos los avisos de confianza que aparezcan.
Explica para qué sirve la firma y la diferencia entre un certificado autofirmado de prueba y uno emitido por una entidad de confianza. El autofirmado no hace que otros equipos confíen automáticamente en tu aplicación. Firma la versión definitiva antes de incluirla en el instalador.
Conserva la clave privada, el .pfx y su contraseña fuera del repositorio y de la descarga pública.
4. Prepara el instalador
Crea el instalador con Inno Setup y conserva su archivo .iss dentro del proyecto. Revisa las opciones del asistente y adapta los valores del ejemplo a tu aplicación:
- Identificación: nombre, versión, autor, carpeta de destino, nombre del instalador e icono.
- Archivos: ejecutable firmado y todos sus recursos y dependencias. Si usas
onedir, incluye la distribución completa. - Asistente: idioma, licencia y modo de instalación para el usuario actual o para todos los usuarios. Documenta los permisos que requiere la opción elegida.
- Accesos y desinstalación: grupo del menú Inicio con el nombre de MiniOffice, opción de acceso directo en el escritorio y desinstalador.
Sustituye las rutas de tu equipo por rutas relativas al proyecto en LicenseFile, SetupIconFile y las entradas Source. Revisa DefaultGroupName para que no conserve «My Program». Compila el instalador e identifica la carpeta donde se genera.
5. Prueba la instalación y la desinstalación
Con asistente: instala MiniOffice, comprueba la licencia, el destino y los accesos directos. Abre la aplicación instalada y prueba sus funciones. Comprueba su entrada en «Aplicaciones instaladas» y desinstálala, verificando la retirada del programa y de sus accesos.
De forma desatendida: prueba tanto la instalación como la desinstalación con /VERYSILENT /NORESTART, como se trabaja en las diapositivas. Ejemplos para PowerShell, adaptando los nombres y las rutas:
.\MiniOffice-Setup.exe /VERYSILENT /NORESTART
.\unins000.exe /VERYSILENT /NORESTART
El primer comando se aplica al instalador generado por Inno; el segundo, al desinstalador de la carpeta instalada. Explica qué hace cada parámetro y comprueba el resultado de ambas operaciones. Registra los comandos y las evidencias en la memoria.
6. Publica una versión descargable
Crea una Release con etiqueta de versión, título y una breve descripción. Adjunta el portable firmado (el .exe o el ZIP completo de onedir) y el instalador. Distingue las dos descargas para que el usuario sepa cuál elegir.
En el repositorio conserva el código, los recursos, Pipfile, Pipfile.lock, .spec, .iss, la licencia y el README. Usa .gitignore para excluir el entorno, los temporales, build/, dist/ y la carpeta de salida del instalador. Los binarios se adjuntan a la Release.
Comprobación final: descarga los dos archivos publicados y prueba esas copias. Enlaza la Release desde el README y comprueba que el profesor puede acceder a ella.
7. Completa la memoria en el README
Documenta el proceso en el mismo repositorio, con los comandos y capturas de tu propia aplicación. Incluye:
- Requisitos, versiones de las herramientas y pasos para ejecutar y empaquetar el proyecto.
- Recursos incluidos, modo de PyInstaller elegido y generación y verificación de la firma.
- Configuración del instalador, licencia, rutas relativas y pruebas con asistente y desatendidas.
- Instrucciones de uso y descarga, capturas del resultado y problemas conocidos.
Entrega: enlace al repositorio y a la Release con las dos distribuciones. Otra persona debe poder reproducir el proceso y probar MiniOffice siguiendo tu memoria.
Apoyo RA2: voz. Las últimas diapositivas explican el dictado con SpeechRecognition y PyAudio. Si tu MiniOffice lo incorpora, verifica el micrófono, las dependencias y su funcionamiento en la distribución. La diapositiva final propone como extra los comandos «negrita», «cursiva», «subrayado», «guardar archivo» y «nuevo documento».
Materiales de la tarea
No hay archivos adjuntos en esta tarea.