blob: f81fb212040c8af3ecaa06be68fbcc3d6d07ee70 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# 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.
## 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)
Requires a **Developer ID Application** certificate and notarization
credentials stored once locally:
```bash
xcrun notarytool store-credentials "octosentry-notary" \
--apple-id "[email protected]" \
--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 (`gh release create 1.0.0 build/octosentry-1.0.0.dmg`)
— the update checker links there.
## Homebrew
Not published yet. [Casks/octosentry.rb](Casks/octosentry.rb) is a
template — to actually publish it:
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`.
## 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.
|