Criar um instalador do Windows no Mac ou no Linux
Suas opções para gerar um Setup.exe quando você desenvolve no macOS ou no Linux, da compilação cruzada com NSIS a um build feito só no navegador, e como testar o resultado sem ter um PC com Windows.
Atualizado em 31 de outubro de 2026 · 3 min de leitura
Muitos aplicativos para Windows são desenvolvidos em Macs: apps Electron e Tauri, ferramentas em Python, jogos, binários Go e Rust compilados de forma cruzada. O app compila sem problemas; é no instalador que as pessoas travam, porque as ferramentas clássicas de instalador pressupõem uma máquina Windows. Aqui estão as formas de contornar isso, e como testar o instalador quando você não tem Windows à mão.
Opção 1: gerar o instalador no navegador
O ExeTup compila o Setup.exe na nuvem. A partir de um Mac ou de um desktop Linux:
- Gere o build para Windows do seu app, de modo que uma única pasta contenha
MyApp.exee seus arquivos. Electron Packager, PyInstaller (executado no Windows ou em uma VM Windows, já que o PyInstaller não faz compilação cruzada),GOOS=windows go build,cargo build --target x86_64-pc-windows-gnue similares produzem exatamente isso. - Compacte a pasta em .zip e envie.
- Preencha nome, versão, editor, escopo de instalação, atalhos e idiomas. Adicione um
.ico. - Gere o build e baixe o
Setup.exe.
Nada é instalado na sua máquina e não há script nenhum. Veja como criar um Setup.exe para as opções em detalhe.
Opção 2: compilar o NSIS localmente
O compilador do NSIS roda no macOS e no Linux:
brew install makensis # macOS
sudo apt install nsis # Debian, Ubuntu
makensis installer.nsi
O script .nsi é escrito por você (veja instalador NSIS online para saber o que isso envolve). O instalador produzido é idêntico ao compilado no Windows. É a escolha certa quando você quer o build totalmente dentro da sua própria CI e não se importa em manter o script.
Opção 3: Inno Setup no Wine
O Inno Setup só existe para Windows, mas seu compilador roda no Wine. Instale o Wine, execute o instalador do Inno Setup dentro dele e depois chame o ISCC.exe pelo Wine a partir do seu script de build. Funciona e alguns projetos são distribuídos assim; espere um pouco de atrito com caminhos e fontes. Veja alternativa ao Inno Setup para uma comparação.
Opção 4: um build Windows na CI
GitHub Actions, GitLab e Azure Pipelines oferecem runners Windows. Compile o app e o instalador lá, com o NSIS ou o Inno Setup instalado por uma etapa de preparação, e baixe o artefato. Bom para equipes com um pipeline de release; pesado para um desenvolvedor solo que distribui uma ferramenta pequena.
Criando o .ico no Mac
Os ícones do Windows são arquivos .ico que contêm vários tamanhos. A partir de um PNG de 256×256:
brew install imagemagick
magick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
Use o mesmo arquivo para o binário do app (--icon do Electron Packager, --icon do PyInstaller) e para o instalador.
Testando sem um PC com Windows
Você deve executar o instalador pelo menos uma vez antes de distribuí-lo. As opções, mais ou menos em ordem de esforço:
- Uma máquina virtual Windows. Em Apple silicon, o UTM ou o Parallels com Windows 11 ARM executam apps x64 por emulação bem o bastante para testar instalações. VirtualBox e VMware funcionam em Macs Intel e no Linux. A licença da Microsoft permite instalações de avaliação para testes.
- Um desktop Windows na nuvem. Windows 365, Azure Virtual Desktop ou a VM Windows de qualquer provedor, cobrada por hora.
- A máquina de um colega ou de um cliente, para uma verificação final: execute o instalador, abra o app pelo menu Iniciar, desinstale pelas Configurações do Windows.
O Wine no macOS consegue rodar alguns apps Windows, mas não é uma forma confiável de avaliar um instalador.
Perguntas frequentes
Posso compilar o próprio app Windows em um Mac?
Muitas vezes, sim. Electron, Tauri, Go, Rust e .NET conseguem gerar builds para Windows a partir do macOS. O PyInstaller não faz compilação cruzada, então congele apps Python no Windows ou em uma VM Windows e depois gere o instalador a partir da pasta produzida.
Preciso do Wine ou de uma VM para usar o ExeTup?
Não. O build roda na nuvem e o resultado é baixado no seu navegador. Uma VM só é útil para testar o instalador depois.
Um instalador compilado no Mac vai se comportar de forma diferente no Windows?
Não. Um instalador NSIS compilado pelo makensis no macOS é equivalente byte a byte a um compilado no Windows, e o build na nuvem do ExeTup usa o mesmo compilador.
Como assino o instalador a partir de um Mac?
A assinatura de código com o signtool exige Windows, mas o osslsigncode assina executáveis Windows no macOS e no Linux com o mesmo certificado. Veja o guia sobre o SmartScreen para entender por que assinar importa.
Guias relacionados
- Como criar um Setup.exe para seu app Windows (sem código)O que um Setup.exe realmente faz, as três formas de criar um e como transformar a pasta do seu app em um instalador profissional em minutos, sem escrever script de instalação.
- Criar um instalador do Windows para um app ElectronEmpacote seu app Electron com o Electron Packager ou o Forge e transforme a pasta gerada em um Setup.exe com assistente, atalhos e desinstalador, sem configurar o electron-builder.
- Crie um instalador NSIS online, sem escrever scriptO que é o NSIS, como é um script .nsi mínimo e como obter um Setup.exe NSIS padrão com o assistente Modern UI, atalhos e desinstalador a partir de um formulário em vez de um script.