Skip to content

Makefile: scope TCC-stable signing to Debug only#15

Merged
bcourbage merged 1 commit into
mainfrom
dev/scope-signing-debug-only
Jul 20, 2026
Merged

Makefile: scope TCC-stable signing to Debug only#15
bcourbage merged 1 commit into
mainfrom
dev/scope-signing-debug-only

Conversation

@bcourbage

Copy link
Copy Markdown
Owner

Follow-up to #14, in response to review: release distributions should never carry the personal Apple Development cert, even transiently.

Change

Scope the stable dev-cert signature to Debug builds only:

  • Debug build → Apple Development cert when available (and the test target, which always builds Debug).
  • Release build → always ad-hoc "-" (equivalent to the project.yml default).
  • CI (any config) → ad-hoc, unchanged.

Why

A personal Apple Development cert is a development identity — it expires and isn't valid for distribution. Both shipping paths already re-sign ad-hoc regardless (install.sh does codesign --sign -; release.yml runs on a runner with no cert), so #14 was signing local Release builds with the dev cert only to have it immediately overwritten. This removes that wasted/confusing step.

Verified

  • make build (Debug) → Authority=Apple Development ..., TeamIdentifier=QJXKM5Q4WH.
  • make build CONFIG=ReleaseSignature=adhoc, TeamIdentifier=not set.
  • Resolution table (local/CI × Debug/Release) all correct.
  • Makefile-only change.

🤖 Generated with Claude Code

Follow-up to #14. The stable Apple Development signature is only needed for
the debug builds launched repeatedly during development; Release must stay
ad-hoc. A personal Apple Development cert is a development identity (expires,
not valid for distribution), and both shipping paths re-sign ad-hoc anyway
(install.sh `codesign --sign -`; release.yml runs on a runner with no cert).

Previously `make build CONFIG=Release` locally signed with the dev cert and
was then immediately re-signed ad-hoc by install.sh — a wasted step that also
briefly put the personal identity on a Release artifact. Now:
- Debug build  -> dev cert when available (test target too, always Debug)
- Release build -> always ad-hoc ("-")
- CI (any config) -> ad-hoc, unchanged

Verified: Debug build is Apple Development signed, Release build is ad-hoc.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bcourbage
bcourbage merged commit aede6fc into main Jul 20, 2026
1 check passed
@bcourbage
bcourbage deleted the dev/scope-signing-debug-only branch July 20, 2026 05:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant