Skip to content

[Bug] [macOS] Release binary blocked by Gatekeeper - .app bundle not shipped #93

@sfrankiel

Description

@sfrankiel

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

  1. Download ferrite-macos-arm64.tar.gz from the v0.2.6.1 release
  2. Extract the archive
  3. Double-click the resulting ferrite binary

Expected Behavior

Application launches

Actual Behavior

Gatekeeper Error appears

Screenshots

Image

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions