mirror of
https://github.com/Foundry376/Mailspring.git
synced 2026-10-29 13:15:19 +01:00
Windows 11 Smart App Control blocks Mailspring on launch with "we couldn't verify its publisher", because three of the binaries Squirrel puts on disk carry no Authenticode signature. MailspringSetup.exe and everything under mailspring-win32-x64 are signed, but Squirrel generates Update.exe, squirrel.exe and mailspring_ExecutionStub.exe while building the installer, after the workflow's app-directory signing step and before the one that signs the installer. The stub is the binary users run: Squirrel copies it to %LocalAppData%\Mailspring\mailspring.exe and points every shortcut at it. A signature on the copy in app-<version>\ does not carry over, since Squirrel rebuilds the stub from StubExecutable.exe on each releasify and copies mailspring.exe's resources into it. Squirrel signs all three itself when given --signWithParams, which it forwards to signtool.exe in its vendor directory. The signtool electron-winstaller bundles is the Windows 7 SDK build from 2009, which predates /dlib, so the installer build now runs against a copy of the vendor directory holding the SDK's signtool and the Trusted Signing dlib. A new verification step then reads the shipped artifacts back and fails the build if any PE inside them lacks a certificate table. Run against the 1.24.1 installer it reports exactly the three binaries above. Claude-Session: https://claude.ai/code/session_016AMFqLD28XxsYt18nsMdPj Co-authored-by: Claude <noreply@anthropic.com>