Code Signing & Updates
Installers for both Windows and macOS are code-signed. Your OS can verify that the binary came from us and hasn't been tampered with after signing.
Windows
The Windows installer (SEODesktop-Setup.exe) and the installed executables are signed with a Microsoft-trusted code-signing certificate. Running the installer shows the publisher name — if it's anything other than our publisher name, don't run it.
Windows SmartScreen may still show a warning on fresh releases (new signatures take time to build reputation). In that case: More info → Run anyway.
macOS
The macOS .dmg installer and the installed .app bundle are signed with an Apple Developer ID and notarized by Apple. Gatekeeper will open the app without the "unidentified developer" warning.
On first launch macOS may still verify the app's staple — give it a few seconds. If you've downloaded the DMG from a non-browser source (e.g. curl), you may need to right-click → Open once to clear the quarantine flag.
Auto-update security
Updates are delivered over HTTPS from our release feed. On every launch (and every ~24 hours while running), SEODesktop:
- Fetches the latest release metadata.
- Compares the version to what's installed.
- If newer, downloads the update as a signed delta patch.
- Verifies the patch's signature before applying.
If the signature check fails, the update is aborted and the installed version continues to run. You'll never receive an unsigned update.
Verifying a binary yourself
If you want to manually verify an installer:
Windows
Get-AuthenticodeSignature .\SEODesktop-Setup.exe
Expected output includes Status: Valid and a signer name matching our publisher.
macOS
codesign --verify --deep --strict SEODesktop.app
spctl --assess --type exec SEODesktop.app
Both should exit with 0 (no output means valid).
Reporting a suspected fake installer
If you find a SEODesktop installer distributed outside our release channel — mirrors, cracks, forks — don't run it. Report the source to mail@sebastian-kraus.com and we'll take action where possible.