Guia

Faça o build de um app Capacitor para iOS quando você trabalha no Windows

O Capacitor coloca seu app web dentro de uma casca nativa. No Windows, você consegue fazer o build do app web e do app Android. O app iOS precisa do Xcode, que só roda no macOS. Testamos onde fica esse limite com o Capacitor 8.5.3 em 19 de outubro de 2026. Ele fica mais adiante do que a maioria das pessoas pensa.

O que funciona no Windows

Rodamos estas etapas no runner Windows Server 2025 do GitHub, com Node 22. A documentação do Capacitor pede Node 22 ou mais novo. Todas as etapas passaram.

npm init @capacitor/app@latest capdemo -- --name CapDemo --app-id com.example.capdemo
cd capdemo
npm install
npm run build
npm i @capacitor/android @capacitor/ios
npx cap add android
npx cap add ios
npx cap sync ios

O build de debug do Android também funcionou ali, com o JDK 21. O gradlew.bat assembleDebug levou 6 minutos e 33 segundos em um runner frio. Ele gerou um app-debug.apk de 8.2 MB.

A surpresa é o npx cap add ios. Ele rodou no Windows em menos de um segundo e gerou um projeto Xcode completo. Foi isto que ele mostrou:

√ Adding native Xcode project in ios in 47.04ms
[info] All Capacitor plugins have a Package.swift file and will be included in Package.swift
[info] Writing Package.swift
[success] ios platform added!

Swift Package Manager, não CocoaPods

Projetos do Capacitor 8 usam o Swift Package Manager por padrão. A documentação o recomenda e diz que o CocoaPods era o padrão antes do Capacitor 8. Nosso projeto novo não tinha Podfile. Ele tinha ios/App/App.xcodeproj e um pacote CapApp-SPM que aponta para os seus plugins em node_modules.

É por isso que as etapas de iOS agora funcionam no Windows. Não há pod install para rodar. Se o seu projeto ainda usa CocoaPods, o pod install precisa do macOS. Não testamos um projeto com CocoaPods no Windows. Para migrar para o SPM, a documentação oferece o npx cap spm-migration-assistant.

O que ainda precisa de um Mac

  • xcodebuild e Xcode. O Capacitor 8 precisa do Xcode 26.0 ou mais novo, e o Xcode só roda no macOS.
  • npx cap open ios e npx cap run ios. Os dois passam o projeto para o Xcode ou para o Simulador.
  • O Simulador do iOS. Ele vem dentro do Xcode.
  • Assinatura, archive e upload. Veja publicar sem Mac para essa parte.

A passagem do Windows para o Mac que testamos

Fizemos commit do projeto do Windows no git e o levamos para um runner Mac. O próprio .gitignore da pasta ios deixa de fora os arquivos web copiados e a configuração gerada. Então o Mac os gera de novo antes de o Xcode rodar:

npm ci
npm run build
npx cap sync ios
xcodebuild -project ios/App/App.xcodeproj -scheme App \
  -configuration Debug -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' \
  -derivedDataPath build build

O build levou 36 segundos com o Xcode 26.6. Na primeira execução, o Xcode baixou o capacitor-swift-pm 8.5.3 do GitHub. Depois instalamos o app no simulador do iPhone 17 Pro e o abrimos. A tela de boas-vindas do Capacitor apareceu.

xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/App.app
xcrun simctl launch booted com.example.capdemo

A página de iOS do Capacitor ainda diz para abrir o App.xcworkspace. Um projeto SPM não tem esse arquivo, então abra o ios/App/App.xcodeproj.

Um build para aparelho com a assinatura desligada também passou, em 17 segundos. Adicione CODE_SIGNING_ALLOWED=NO e use -sdk iphoneos. Para publicar, abra o projeto no Xcode, escolha seu time em Signing and Capabilities, depois Product e então Archive.

E o Ionic Appflow?

O Appflow faz o build de apps iOS na nuvem da Ionic, e a página dele ainda diz isso. Em 11 de fevereiro de 2025, a Ionic parou de vender o Appflow para novos clientes. Os usuários atuais mantêm o acesso até 31 de dezembro de 2027. Se você ainda não é cliente, planeje outro caminho.

Alugar o Mac para uma etapa

Um passe diário da MacRun é um Mac mini M6 dedicado por $15, ou $59 por uma semana. O Xcode 27.1 e o simulador do iOS 27.1 estão instalados. O Node não está. Você tem direitos de administrador e Homebrew, então instala a versão do Node que você usa. Você conecta por SSH e compartilhamento de tela a partir do Windows. O Mac é apagado quando o passe termina. Nosso guia do Simulador no Windows mostra como é a tela remota.

Quem não deve alugar um Mac para isso

Se você só precisa de um build de vez em quando, um runner macOS hospedado resolve. Os comandos acima rodaram no GitHub Actions sem um Mac nosso. O Codemagic lista suporte ao Ionic e dá a pessoas físicas 500 minutos grátis de macOS M2 por mês. Isso segundo a página de preços em 19 de outubro de 2026. Se você publica toda semana, um Mac usado pode sair mais barato com o tempo. Um Mac alugado faz sentido quando você precisa do Xcode aberto, para problemas de assinatura ou um bug de plugin nativo.

Perguntas frequentes

Posso rodar npx cap add ios no Windows?

+

Sim, com o Capacitor 8 e o Swift Package Manager. No nosso teste de outubro de 2026, ele gerou o projeto Xcode no Windows em menos de um segundo. O npx cap sync ios também funcionou. O build do app ainda precisa de um Mac.

O Capacitor usa CocoaPods ou Swift Package Manager no iOS?

+

Projetos novos do Capacitor 8 usam o Swift Package Manager. Nosso projeto novo tinha um Package.swift e nenhum Podfile. A documentação diz que o CocoaPods era o padrão antes do Capacitor 8 e agora é opcional.

Posso fazer o build de um app Capacitor para iOS no Windows?

+

Não do app em si. A etapa do xcodebuild, o Simulador e a assinatura precisam do Xcode no macOS. Você pode preparar tudo no Windows, enviar para o git e fazer o build em um Mac ou em um runner de CI com macOS.

O Ionic Appflow ainda existe?

+

A Ionic parou de vender o Appflow para novos clientes em 11 de fevereiro de 2025. Os usuários atuais do Appflow mantêm o acesso até 31 de dezembro de 2027, segundo o anúncio da Ionic.

Posso fazer o build do app Android no Windows?

+

Sim. No nosso teste, npx cap add android e gradlew.bat assembleDebug funcionaram no Windows com o JDK 21. O primeiro build levou 6 minutos e 33 segundos e gerou um APK de debug de 8.2 MB.

Quanto tempo leva um build iOS do Capacitor?

+

Nosso app inicial fez o build para o Simulador em 24 a 36 segundos com o Xcode 26.6 em um runner macOS do GitHub. O tempo maior incluiu baixar os pacotes Swift. Apps maiores levam mais tempo.

Guias relacionados