Skip to content

feat: migrar para Apple Silicon (arm64) e modernizar stack (Electron 33 / Node 22 / electron-vite)#58

Merged
Rick0785 merged 5 commits into
mainfrom
feat/lh/57-migrar-apple-silicon-arm64
Jul 10, 2026
Merged

feat: migrar para Apple Silicon (arm64) e modernizar stack (Electron 33 / Node 22 / electron-vite)#58
Rick0785 merged 5 commits into
mainfrom
feat/lh/57-migrar-apple-silicon-arm64

Conversation

@Rick0785

Copy link
Copy Markdown
Contributor

Objetivo

Tornar o Assinador MPES compatível com Apple Silicon (arm64) e modernizar o
stack, resolvendo o aviso da Apple de descontinuação de apps Intel (ver
docs/diagnostico-apple-silicon.md). Também prepara a v5 para distribuição de
teste no macOS.

Migração de stack

Antes Depois
Bundler electron-webpack electron-vite 3
Electron 9 33
Node 14 22 (.nvmrc, engines, CI)
React / UI 16 / Chakra 0.8 18 / Chakra 2
Renderer nodeIntegration: true contextIsolation + preload/contextBridge

Build para Apple Silicon

  • electron-builder.yml: mac.target gera dmg + zip para arch: [x64, arm64]
    (dois DMGs nativos: Intel e Apple Silicon). Fim do --x64 hardcoded.
  • CI (main.yml): matrix windows-latest + macos-latest (runner Apple Silicon
    compila o arm64 nativo). Em tag v* publica release; em push/dispatch sobe os
    instaladores como artifacts.
  • postinstall: electron-builder install-app-deps recompila o módulo nativo
    pkcs11js para a arquitetura do runner.

Correções aplicadas nesta branch (além da migração inicial)

Ao revisar a migração, três regressões foram encontradas comparando com as
releases históricas (v4.3.0) e corrigidas:

  1. 🔴 Ícone do macOSmac.icon apontava para icon.png (300×300), que
    quebra o build mac (electron-builder exige ≥512 para o .icns). Voltou
    para icon.512.png.
  2. Auto-update do macOS — o mac.target tinha só dmg; o electron-updater
    no macOS atualiza a partir do zip (que existia até a v4.3.0). Zip
    readicionado.
  3. Windows ia32 — o win.target tinha só x64; o ia32 era publicado até
    a v4.3.0. Restaurado.

Documentação

  • Readme.md: instruções para o testador baixar o arquivo correto por SO e
    arquitetura (Apple Silicon vs Intel) e abrir no macOS.
  • docs/build-e-distribuicao.md: fluxo de build/release; corrige a afirmação
    sobre assinatura Windows (não há certificado no CI) e registra que o RPM Linux
    nunca foi publicado em release.
  • CLAUDE.md / prompt de migração atualizados.

Notas / pendências (não bloqueiam este PR)

  • Sem code signing (Windows e macOS) — o app nunca foi assinado; a abertura
    manual no macOS é o fluxo de sempre. Developer ID fica como trabalho futuro
    (secrets já deixados comentados em main.yml).
  • Token no macOS arm64 depende do middleware arm64 do fabricante — fora
    do controle do MPES; só o teste com token real confirma.
  • libs/ ausente — bibliotecas PKCS#11 dos fabricantes não são embarcadas
    (warning tolerado; comportamento pré-existente).

Validação

  • pullRequest.yml (lint + build no Ubuntu) roda neste PR.
  • Instalador Windows já gerado e testado manualmente (abre e sobe o serviço).
  • Build macOS arm64: validar pelo job macos-latest (este é o primeiro build
    mac real no stack novo).

🤖 Generated with Claude Code

Luiz Henrique Valverde Teixeira and others added 5 commits June 11, 2026 16:23
- electron-builder.yml:
  - mac.icon volta para icon.512.png (icon.png tinha 300x300 e quebrava o
    build mac, que exige >=512 para gerar o .icns)
  - mac.target ganha zip alem do dmg (o auto-update do macOS baixa do zip;
    existia ate a v4.3.0 e havia sido perdido)
  - win.target restaura o ia32 alem do x64 (publicado ate a v4.3.0)
- Readme.md: instrucoes para o testador baixar o arquivo correto por SO e
  arquitetura (Apple Silicon vs Intel), incluindo o passo do xattr para o
  build macOS nao assinado
- docs/build-e-distribuicao.md: corrige afirmacao sobre assinatura Windows
  (nao ha certificado no CI), documenta o zip do mac e que o RPM Linux nunca
  foi publicado em release
- .gitignore: ignora installer.zip (artefato de build local)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
O app nunca foi assinado; autorizar a abertura no macOS sempre foi o fluxo
esperado. Remove a moldura de "build nao assinado (teste)" / Developer ID e
mantem so a instrucao util (botao direito > Abrir, com xattr de reserva).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Rick0785
Rick0785 requested a review from Marisco July 10, 2026 18:19
@Rick0785
Rick0785 merged commit 41a9004 into main Jul 10, 2026
4 checks passed
@Rick0785
Rick0785 deleted the feat/lh/57-migrar-apple-silicon-arm64 branch July 10, 2026 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrar Assinador MPES para suportar Apple Silicon (ARM64) e versões futuras do macOS

2 participants