Menu ▾ ▴

#212 Bundle and sign the macOS share extension in releases

closed
nobody
2026-08-08
2026-08-06
Anonymous
No

Originally created by: kristofferR

The share extension from [#211] must ship inside Carrier.app/Contents/PlugIns/Carrier Share.appex, be nested-signed before the outer app, and pass Apple's notarization service.

Release design

  • share-extension/macos/build.ts is the cross-platform Tauri hook. It exits immediately off macOS, maps Tauri's target architecture, reads Carrier's bundle version, requires an explicit APPLE_SIGNING_IDENTITY, and invokes the Objective-C build with argument-safe process spawning.
  • build.sh compiles only arm64 or x86_64, stamps both extension version fields to match Carrier, enables Hardened Runtime, applies the extension sandbox entitlement, and uses a trusted timestamp for Developer ID signatures. An explicit - remains available for intentional local ad-hoc builds.
  • tauri.conf.release.json runs the hook through beforeBundleCommand and maps the finished bundle into PlugIns/Carrier Share.appex. Tauri then signs the outer app after the nested extension.
  • Tagged release jobs verify the extension executable, strict nested signature, sandbox entitlement, and matching app/extension versions before publishing.
  • A manual notarization smoke job builds the same app with the production Apple secrets, verifies the deep signature, Gatekeeper assessment, and stapled ticket, then uploads the notarized .app as a one-day artifact for exact installation and share-sheet testing.

Verification

Local Developer ID builds have valid nested and outer signatures, the sandbox entitlement is present, and both bundles report version 1.7.1. The remaining acceptance criterion is a successful CI notarization smoke and validation of its downloaded artifact.

Part of [#217]. Depends on [#211].

Related

Tickets: #211
Tickets: #217
Tickets: #220
Tickets: #221

Discussion

  • Anonymous

    Anonymous - 2026-08-08

    Originally posted by: kristofferR

    Completed by [#221]. The release pipeline now builds and nested-signs Carrier Share.appex, Apple notarization accepted it, and the downloaded smoke artifact passed deep signature verification, Gatekeeper assessment, and stapler validation.

     

    Related

    Tickets: #221

  • Anonymous

    Anonymous - 2026-08-08

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.