diff options
| -rw-r--r-- | DISTRIBUTION.md | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/DISTRIBUTION.md b/DISTRIBUTION.md index f81fb21..e442704 100644 --- a/DISTRIBUTION.md +++ b/DISTRIBUTION.md @@ -1,26 +1,9 @@ # Distribution -octosentry ships on two channels with a single codebase and identical -entitlements (spec §9) — the only divergence is signing method at export -time and whether the update checker runs. +octosentry ships as a notarized DMG and via Homebrew — no App Store +distribution. Same entitlements either way; there's only one channel. -## App Store - -1. Requires an active Apple Developer Program membership and an **Apple - Distribution** certificate (Xcode > Settings > Accounts > Manage - Certificates). -2. Create the app record in [App Store Connect](https://appstoreconnect.apple.com) - with bundle ID `net.cleberg.octosentry`. -3. Archive: Product > Archive in Xcode (Release configuration). -4. In the Organizer, Distribute App > App Store Connect > Upload. -5. Complete the app listing (screenshots, description, privacy nutrition - label — [PrivacyInfo.xcprivacy](octosentry/PrivacyInfo.xcprivacy) already - declares no tracking and no collected data) and submit for review. - -The update checker (`UpdateStore`) detects the App Store receipt at -runtime and never runs on this build — no code changes needed per release. - -## DMG (direct distribution) +## DMG Requires a **Developer ID Application** certificate and notarization credentials stored once locally: @@ -43,18 +26,31 @@ 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 (`gh release create 1.0.0 build/octosentry-1.0.0.dmg`) -— the update checker links there. +the corresponding GitHub Release: + +```bash +gh release upload 1.0.0 build/octosentry-1.0.0.dmg +``` + +The update checker (`UpdateStore`) links there. ## Homebrew -Not published yet. [Casks/octosentry.rb](Casks/octosentry.rb) is a -template — to actually publish it: +Published at [zerolabsco/homebrew-tap](https://github.com/zerolabsco/homebrew-tap). +Users install via: + +```bash +brew tap zerolabsco/tap +brew install --cask octosentry +``` + +Per release, after uploading the new DMG to its GitHub Release: -1. Create a `zerolabsco/homebrew-tap` repo. -2. Copy the cask there, filling in the real `sha256` of the released DMG - (`shasum -a 256 octosentry-1.0.0.dmg`). -3. Users install via `brew tap zerolabsco/tap && brew install --cask octosentry`. +1. `shasum -a 256 build/octosentry-<version>.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 `zerolabsco/homebrew-tap`, + commit, and push. ## Version bumps |
