| summary | Packaging, signing, and bundled CLI notes. | ||
|---|---|---|---|
| read_when |
|
Scripts/package_app.sh: builds host arch with ad-hoc signing by default; setARCHES="arm64 x86_64"for universal. Verifies slices. Stable-certificate packaging requires explicitCODEXBAR_SIGNING=identityplusAPP_IDENTITY.- The bundled Developer ID provisioning profile and CloudKit entitlements apply only to upstream-team release builds. An alternate resolved
APP_TEAM_IDretains its matching app/widget groups without that upstream profile; direct callers remain responsible for selecting a team consistent with their identity. Scripts/compile_and_run.sh: uses host arch; pass--release-universalor--release-arches="arm64 x86_64"for release packaging.Scripts/sign-and-notarize.sh: explicitly selects Developer ID signing, notarizes, staples, and zips (acceptsARCHESfor universal).Scripts/make_appcast.sh: wrapper around the sharedmac-release make-appcasthelper; app metadata comes from.mac-release.env.Scripts/changelog-to-html.sh: converts the per-version changelog section to HTML for Sparkle.Scripts/verify_packaged_app_launch.sh: checks resource loading and AppKit liveness with a temporary home, disabled synthetic provider config, no inherited credentials, test-safe background work, and a sandbox guard against writes to the real home directory.
CodexBarWidget.appexis built byWidgetExtension/CodexBarWidgetExtension.xcodeprojas a real macOS app extension, then bundled with app-group entitlements.- When updating dependencies, refresh both the root
Package.resolvedand the widget workspace'sPackage.resolved, and verify their pinned revisions agree. Packaging deliberately disables automatic dependency resolution. CodexBarCLIcopied toCodexBar.app/Contents/Helpers/for symlinking.- SwiftPM resource bundles (e.g.
KeyboardShortcuts_KeyboardShortcuts.bundle) copied intoContents/Resources(required forKeyboardShortcuts.Recorder).
- Full checklist in
docs/RELEASING.md.
See also: docs/sparkle.md.