Skip to content

Notarize macOS desktop builds in release workflow #26

@eliothedeman

Description

@eliothedeman

Blocked on Apple Developer Program enrollment. Once the company Apple Developer account is set up, wire notarization into .github/workflows/release-desktop.yml.

Prerequisites (account setup)

  • Create a dedicated Apple ID under a company email (e.g. apple@empathic.dev), not a personal one
  • Get a D-U-N-S number for the company (free via dnb.com/duns-number)
  • Enroll in Apple Developer Program as Organization ($99/yr) — not Individual, so Gatekeeper shows the company name
  • Enable 2FA on the enrollment Apple ID

Signing + notarization credentials

  • Create a Developer ID Application certificate, export as .p12 with a password
  • Create an App Store Connect API key (Users and Access → Integrations → Keys), role: Developer — download the .p8 (one-time)
  • Add GitHub Actions secrets:
    • APPLE_CERTIFICATE (base64 of the .p12)
    • APPLE_CERTIFICATE_PASSWORD
    • APPLE_SIGNING_IDENTITY (e.g. Developer ID Application: Empathic, Inc. (TEAMID))
    • APPLE_API_ISSUER (issuer UUID)
    • APPLE_API_KEY (key ID)
    • APPLE_API_KEY_PATH (contents of the .p8)

Workflow change

Add these to the env: block on the tauri-action step in .github/workflows/release-desktop.yml:

```yaml
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }}
APPLE_API_KEY_PATH: ${{ secrets.APPLE_API_KEY_PATH }}
```

tauri-action picks these up automatically — signing and notarization are skipped when secrets are absent, so the workflow stays green in the meantime.

Follow-ups to consider

  • Windows code signing (separate cert, separate issue)
  • Decide whether to also sign dev builds or only release artifacts

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions