Skip to content

Commit 3f68335

Browse files
committed
fix(release): stop Connect config from requiring macOS passkey signing
1 parent dccf36f commit 3f68335

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

scripts/build-desktop-artifact.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,18 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => {
479479
assert.isUndefined(resolveMacPasskeySigningConfiguration({}, "0.0.31"));
480480
});
481481

482+
// Enabling Connect sets a publishable key on every release build. That alone
483+
// is not a request for passkeys, and treating it as one broke macOS signing
484+
// the first time Connect was configured.
485+
it("signs without passkey entitlements when only Connect is configured", () => {
486+
assert.isUndefined(
487+
resolveMacPasskeySigningConfiguration(
488+
{ T3CODE_CLERK_PUBLISHABLE_KEY: `pk_live_${btoa("clerk.pylon-code.com$")}` },
489+
"0.0.31",
490+
),
491+
);
492+
});
493+
482494
// Half-configured passkeys produce an app that looks capable and fails at
483495
// authentication, so that stays an error rather than degrading.
484496
it("rejects passkey configuration that is missing a provisioning profile", () => {

scripts/build-desktop-artifact.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -804,7 +804,11 @@ export function resolveMacPasskeySigningConfiguration(
804804
const provisioningProfilePath = env.T3CODE_MACOS_PROVISIONING_PROFILE?.trim() ?? "";
805805
const configuredRpDomains = env.T3CODE_CLERK_PASSKEY_RP_DOMAINS?.trim();
806806
const configuredPublishableKey = env.T3CODE_CLERK_PUBLISHABLE_KEY?.trim();
807-
if (!provisioningProfilePath && !configuredRpDomains && !configuredPublishableKey) {
807+
// A publishable key means Connect is configured, not that passkeys are — it
808+
// is only a fallback source for the RP domain once a provisioning profile
809+
// exists. Treating it as passkey intent made every Connect-enabled build
810+
// demand an Apple Team ID and fail signing outright.
811+
if (!provisioningProfilePath && !configuredRpDomains) {
808812
return undefined;
809813
}
810814

0 commit comments

Comments
 (0)