# Distribution octosentry ships as a notarized DMG and via Homebrew — no App Store distribution. Same entitlements either way; there's only one channel. ## DMG Requires a **Developer ID Application** certificate and notarization credentials stored once locally: ```bash xcrun notarytool store-credentials "octosentry-notary" \ --apple-id "you@example.com" \ --team-id "YOUR_TEAM_ID" \ --password "an-app-specific-password" ``` (App-specific password from [appleid.apple.com](https://appleid.apple.com), not your main Apple ID password.) Then, per release: ```bash scripts/build-dmg.sh 1.0.0 ``` This archives, exports with Developer ID signing, notarizes, staples the ticket, and produces `build/octosentry-1.0.0.dmg`. Attach that file to the corresponding GitHub Release: ```bash gh release upload 1.0.0 build/octosentry-1.0.0.dmg ``` The update checker (`UpdateStore`) links there. ## Homebrew Published at [krazywarez/homebrew-tap](https://github.com/krazywarez/homebrew-tap). Users install via: ```bash brew tap krazywarez/tap brew install --cask octosentry ``` Per release, after uploading the new DMG to its GitHub Release: 1. `shasum -a 256 build/octosentry-.dmg` 2. Update `version` and `sha256` in [Casks/octosentry.rb](Casks/octosentry.rb) (kept here for reference — the canonical copy lives in the tap repo). 3. Copy the updated file into a local clone of `krazywarez/homebrew-tap`, commit, and push. ## Version bumps `MARKETING_VERSION` in the Xcode project must match the git tag for each release — the update checker compares `CFBundleShortVersionString` against the latest GitHub Release's tag name.