0.2.0. Update both places (they must match):
Sources/MacDiskSleuthKit/Version.swift → MacDiskSleuthVersion.stringApp/project.yml → MARKETING_VERSION (and bump CURRENT_PROJECT_VERSION)scripts/check-version.shmain once CI is green.git tag v0.2.0 && git push origin v0.2.0The Release workflow then runs the tests, builds a universal (arm64 + x86_64) CLI and app, and publishes a GitHub release with:
macdisksleuth-<version>-macos-universal.tar.gzMacDiskSleuth-<version>.zipSHA256SUMSRelease notes are auto-generated from merged PRs. Tags with a suffix (v0.2.0-rc1) are marked pre-release. The workflow fails early if the tag doesn’t match the source version.
When the secrets below are set, the Release workflow signs the app and CLI with a Developer ID certificate, submits both to Apple’s notary service, and staples the ticket to the app, so downloads open without Gatekeeper warnings. Without them it falls back to ad-hoc signing, and the release notes say so.
Fastest path: on a Mac that has the certificate installed and the .p8 key downloaded, run scripts/setup-signing-secrets.sh. It exports the certificate, encodes both files and stores all six secrets with the GitHub CLI. To get a notarized build on that Mac right away, run scripts/build-notarized-app.sh --install.
To set them by hand instead, add these under Settings → Secrets and variables → Actions on the repository:
| Secret | Value |
|---|---|
MACOS_CERTIFICATE_P12 |
base64 of your Developer ID Application certificate exported as .p12 |
MACOS_CERTIFICATE_PASSWORD |
the password you chose when exporting the .p12 |
APPLE_TEAM_ID |
your 10-character Team ID |
ASC_KEY_ID |
App Store Connect API key ID |
ASC_ISSUER_ID |
App Store Connect issuer ID |
ASC_API_KEY_P8 |
base64 of the AuthKey_<KEY_ID>.p8 file |
How to get them:
Developer ID Application: <name> (<TEAMID>) under My Certificates, right-click → Export, choose .p12, and set a password. Then base64 -i cert.p12 | pbcopy and paste..p8 (it can be downloaded only once). Note the Key ID and the Issuer ID shown on that page. Then base64 -i AuthKey_<KEY_ID>.p8 | pbcopy and paste.Never commit the .p12 or .p8. Only the workflow’s temporary keychain sees them, and it is deleted at the end of the job.