Description
The macOS release asset ships a raw binary that is blocked by Gatekeeper on launch. The build system already produces a working .app bundle locally - it just isn't what gets packaged into the release.
Environment
- OS: macOS 15.6.1 (24G90), Apple Silicon (arm64)
- Ferrite version: 0.2.6.1
- Rust version: rustc 1.93.1 (01f6ddf75 2026-02-11) (Homebrew)
- Installation method: pre-built Binary
Steps to Reproduce
- Download ferrite-macos-arm64.tar.gz from the v0.2.6.1 release
- Extract the archive
- Double-click the resulting ferrite binary
Expected Behavior
Application launches
Actual Behavior
Gatekeeper Error appears
Screenshots
Workaround:
Users comfortable with the terminal can run:
bashxattr -d com.apple.quarantine ferrite && ./ferrite
Additional Context
The release asset ships a raw binary instead of the .app bundle.
A local build via cargo bundle produces a working .app at target/release/bundle/osx/Ferrite.app, which launches without issue. It appears that the release asset ships target/release/ferrite or target/release/bundle/osx/Ferrite.app/Contents/MacOS/ferrite (raw binaries) instead of the Ferrite.app bundle.
Release asset contents after extraction:
ferrite ← raw Mach-O binary
Local build via cargo bundle produces:
target/release/bundle/osx/Ferrite.app/ ← proper .app bundle
└── Contents/
├── Info.plist
├── MacOS/
│ └── ferrite
└── Resources/
macOS requires the .app bundle structure - not just the raw binary - to treat the application as trusted and launch it correctly.
Description
The macOS release asset ships a raw binary that is blocked by Gatekeeper on launch. The build system already produces a working .app bundle locally - it just isn't what gets packaged into the release.
Environment
Steps to Reproduce
Expected Behavior
Application launches
Actual Behavior
Gatekeeper Error appears
Screenshots
Workaround:
Users comfortable with the terminal can run:
Additional Context
The release asset ships a raw binary instead of the .app bundle.
A local build via cargo bundle produces a working .app at target/release/bundle/osx/Ferrite.app, which launches without issue. It appears that the release asset ships target/release/ferrite or target/release/bundle/osx/Ferrite.app/Contents/MacOS/ferrite (raw binaries) instead of the Ferrite.app bundle.
Release asset contents after extraction:
Local build via cargo bundle produces:
macOS requires the .app bundle structure - not just the raw binary - to treat the application as trusted and launch it correctly.