You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/code-signing.md
+28-4Lines changed: 28 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -123,15 +123,15 @@ macOS {
123
123
124
124
### Notarization
125
125
126
-
Apple notarization is required for distributing outside the Mac App Store on macOS 10.15+. Two authentication modes are supported (mutually exclusive — App Store Connect API key support is planned):
126
+
Apple notarization is required for distributing outside the Mac App Store on macOS 10.15+. Three authentication modes are supported (mutually exclusive):
| `compose.desktop.mac.notarization.keychainProfile` | Profile name created via `store-credentials` |
174
174
| `compose.desktop.mac.notarization.keychainPath` | Optional path to the keychain holding the profile |
175
175
176
-
> Configuring both modes in the same build is rejected at validation time. Pick one.
176
+
#### Mode 3 — App Store Connect API key
177
+
178
+
Generate a key in [App Store Connect → Users and Access → Integrations → Team Keys](https://appstoreconnect.apple.com/access/integrations/api), download the `.p8` file once, then reference it:
Copy file name to clipboardExpand all lines: plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/dsl/MacOSNotarizationSettings.kt
+35Lines changed: 35 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -66,6 +66,41 @@ abstract class MacOSNotarizationSettings {
Copy file name to clipboardExpand all lines: plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/internal/NucleusProjectProperties.kt
Copy file name to clipboardExpand all lines: plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/internal/configureJvmApplication.kt
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -877,7 +877,11 @@ internal fun JvmApplicationContext.configureCommonNotarizationSettings(notarizat
877
877
!notarization.password.orNull.isNullOrEmpty() &&
878
878
!notarization.teamID.orNull.isNullOrEmpty()
879
879
val hasKeychainProfile =!notarization.keychainProfile.orNull.isNullOrEmpty()
880
-
val configured = hasAppleId || hasKeychainProfile
880
+
val hasApiKey =
881
+
!notarization.apiKey.orNull.isNullOrEmpty() &&
882
+
!notarization.apiKeyId.orNull.isNullOrEmpty() &&
883
+
!notarization.apiIssuer.orNull.isNullOrEmpty()
884
+
val configured = hasAppleId || hasKeychainProfile || hasApiKey
881
885
if (!configured) {
882
886
it.logger.info("Notarization skipped: macOS notarization settings are not configured")
Copy file name to clipboardExpand all lines: plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleus/desktop/application/internal/validation/ValidatedMacOSNotarizationSettings.kt
+75-24Lines changed: 75 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -19,8 +19,16 @@ internal sealed class NotarizationAuth {
0 commit comments