Crear un instalador de Windows desde Mac o Linux
Tus opciones para generar un Setup.exe cuando desarrollas en macOS o Linux, desde compilar NSIS de forma cruzada hasta una compilación solo en el navegador, y cómo probar el resultado sin tener un PC con Windows.
Actualizado el 31 de octubre de 2026 · 3 min de lectura
Muchas aplicaciones para Windows se desarrollan en Mac: apps de Electron y Tauri, herramientas en Python, juegos, binarios de Go y Rust compilados de forma cruzada. La aplicación compila sin problema; donde la gente se atasca es en el instalador, porque las herramientas clásicas para crearlo dan por hecho que hay una máquina con Windows. Estas son las formas de sortearlo, y cómo probar el instalador cuando no tienes Windows a mano.
Opción 1: compilar el instalador en el navegador
ExeTup compila el Setup.exe en la nube. Desde un Mac o un escritorio Linux:
- Genera la versión para Windows de tu aplicación, de modo que una sola carpeta contenga
MyApp.exey sus archivos. Electron Packager, PyInstaller (ejecutado en Windows o en una VM con Windows, ya que PyInstaller no compila de forma cruzada),GOOS=windows go build,cargo build --target x86_64-pc-windows-gnuy similares producen exactamente eso. - Comprime la carpeta en un .zip y súbela.
- Rellena el nombre, la versión, el editor, el ámbito de instalación, los accesos directos y los idiomas. Añade un
.ico. - Compila y descarga
Setup.exe.
No se instala nada en tu máquina y no hay ningún script. Consulta cómo crear un Setup.exe para ver las opciones en detalle.
Opción 2: compilar NSIS en local
El compilador de NSIS funciona en macOS y Linux:
brew install makensis # macOS
sudo apt install nsis # Debian, Ubuntu
makensis installer.nsi
El script .nsi lo escribes tú (consulta instalador NSIS en línea para saber qué implica). El instalador que produce es idéntico al compilado en Windows. Es la opción correcta cuando quieres que la compilación quede por completo dentro de tu propia CI y no te importa mantener el script.
Opción 3: Inno Setup bajo Wine
Inno Setup solo existe para Windows, pero su compilador funciona bajo Wine. Instala Wine, ejecuta dentro el instalador de Inno Setup y luego llama a ISCC.exe a través de Wine desde tu script de compilación. Funciona y algunos proyectos se publican así; cuenta con algo de fricción con las rutas y las fuentes. Consulta alternativa a Inno Setup para una comparación.
Opción 4: una compilación en Windows en CI
GitHub Actions, GitLab y Azure Pipelines ofrecen runners de Windows. Compila ahí la aplicación y el instalador, con NSIS o Inno Setup instalados en un paso de preparación, y descarga el artefacto. Bien para equipos con un pipeline de releases; pesado para un desarrollador en solitario que publica una herramienta pequeña.
Crear el .ico en un Mac
Los iconos de Windows son archivos .ico que contienen varios tamaños. A partir de un PNG de 256×256:
brew install imagemagick
magick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
Usa el mismo archivo para el binario de la aplicación (--icon de Electron Packager, --icon de PyInstaller) y para el instalador.
Probar sin un PC con Windows
Deberías ejecutar el instalador al menos una vez antes de publicarlo. Las opciones, más o menos por orden de esfuerzo:
- Una máquina virtual con Windows. En Apple silicon, UTM o Parallels con Windows 11 ARM ejecutan apps x64 mediante emulación lo bastante bien como para probar instalaciones. VirtualBox y VMware funcionan en Mac con Intel y en Linux. La licencia de Microsoft permite instalaciones de evaluación para pruebas.
- Un escritorio Windows en la nube. Windows 365, Azure Virtual Desktop o la VM con Windows de cualquier proveedor, por horas.
- La máquina de un compañero o de un cliente, para una comprobación final: ejecuta el instalador, abre la aplicación desde el menú Inicio, desinstálala desde la Configuración de Windows.
Wine en macOS puede ejecutar algunas aplicaciones de Windows, pero no es una forma fiable de juzgar un instalador.
Preguntas frecuentes
¿Puedo compilar la propia aplicación para Windows en un Mac?
A menudo. Electron, Tauri, Go, Rust y .NET pueden apuntar a Windows desde macOS. PyInstaller no compila de forma cruzada, así que congela las aplicaciones Python en Windows o en una VM con Windows y luego crea el instalador a partir de la carpeta que genera.
¿Necesito Wine o una VM para ExeTup?
No. La compilación se ejecuta en la nube y el resultado se descarga en tu navegador. Una VM solo sirve para probar el instalador después.
¿Un instalador compilado en un Mac se comportará distinto en Windows?
No. Un instalador NSIS compilado por makensis en macOS es equivalente byte a byte a uno compilado en Windows, y la compilación en la nube de ExeTup usa el mismo compilador.
¿Cómo firmo el instalador desde un Mac?
La firma de código con signtool necesita Windows, pero osslsigncode firma ejecutables de Windows en macOS y Linux con el mismo certificado. Consulta la guía sobre SmartScreen para saber por qué importa firmar.
Guías relacionadas
- Cómo crear un Setup.exe para tu app de Windows (sin código)Qué hace realmente un Setup.exe, las tres formas de crear uno y cómo convertir la carpeta de tu app en un instalador profesional en minutos, sin escribir ningún script.
- Crear un instalador de Windows para una app ElectronEmpaqueta tu app Electron con Electron Packager o Forge y convierte la carpeta resultante en un Setup.exe con asistente, accesos directos y desinstalador, sin configurar electron-builder.
- Crea un instalador NSIS en línea sin escribir un scriptQué es NSIS, cómo es un script .nsi mínimo y cómo obtener un Setup.exe NSIS estándar con el asistente Modern UI, accesos directos y un desinstalador a partir de un formulario en lugar de un script.