S.
07/03/2025, 6:34 PMExecution failed for task ':composeApp:createDistributable'.
> Could not find certificate for 'Dominik Sö' in keychain [/Users/domin/Library/Keychains/login.keychain-db]
I created both certificates, downloaded and installed them. I can see them in the Keychain access app as well as in the terminal, so what could be going wrong here?S.
07/03/2025, 6:43 PMsigning {
sign.set(true)
identity.set("Dominik Sö")
keychain.set("/Users/domin/Library/Keychains/login.keychain-db")
}
Michael Paus
07/03/2025, 7:09 PMDeveloper ID Application: …
and you also don’t have to specify the (default) keychain explicitly.S.
07/03/2025, 7:16 PM3rd Party Mac Developer Application
and 3rd Party Mac Developer Installer
. Developer ID Application
is only for publishing outside of App store.
I can test it with each one but don't see a way of providing multiple.S.
07/03/2025, 7:17 PMname
property of the keys, so it looks like providing that should workS.
07/03/2025, 7:47 PMrkechols
07/04/2025, 3:51 AMö
when searching for a certificate, but I'm not totally sure.S.
07/04/2025, 8:35 AMtasks.register<Exec>("signMacPkg") {
val pkgPath = layout.buildDirectory.file(
"compose/binaries/main/pkg/App.pkg"
).get().asFile.absolutePath
val identity = "Dominik Sö"
val keychainPath = "/Users/domin/Library/Keychains/login.keychain-db"
commandLine(
"productsign",
"--sign", identity,
"--keychain", keychainPath,
pkgPath,
pkgPath.replace(".pkg", "-signed.pkg")
)
}
productsign: signing product with identity "3rd Party Mac Developer Installer: DOMINIK SÖ (team number#)" from keychain /Users/domin/Library/Keychains/login.keychain-db
productsign: adding certificate "Apple Worldwide Developer Relations Certification Authority"
productsign: adding certificate "Apple Root CA"
productsign: Wrote signed product archive to /Users/domin/IdeaProjects/App/composeApp/build/compose/binaries/main/pkg/App-signed.pkg
S.
07/04/2025, 9:26 AMMichael Paus
07/04/2025, 10:14 AMS.
07/04/2025, 10:23 AMMichael Paus
07/04/2025, 10:26 AMS.
07/04/2025, 10:27 AMS.
07/04/2025, 10:27 AM[org.gradle.process.internal.DefaultExecHandle] Starting process 'command '/usr/bin/security''. Working directory: /Users/domin/IdeaProjects/ClubManager/composeApp Command: /usr/bin/security find-certificate -a -c 3rd Party Mac Developer Application: Dominik Sö
running this exact command doesn't work for me either, but when I put the certificate string in "" it worksS.
07/04/2025, 11:23 AMMichael Paus
07/04/2025, 12:18 PMS.
07/04/2025, 12:50 PMrkechols
07/04/2025, 5:42 PMS.
07/04/2025, 5:44 PMAlexander Maryanovsky
07/05/2025, 7:17 PMS.
07/05/2025, 7:29 PMAlexander Maryanovsky
07/06/2025, 11:30 AMö
character that is causing the problem?S.
07/06/2025, 11:38 AMAlexander Maryanovsky
07/06/2025, 11:41 AMAlexander Maryanovsky
07/06/2025, 11:42 AMproductsign
. But in the PR you are changing the arguments to the security
command.S.
07/06/2025, 11:48 AMS.
07/06/2025, 12:01 PMS.
07/06/2025, 12:30 PMAlexander Maryanovsky
07/06/2025, 12:31 PMDeveloper ID Application: Compose Test Sö
and I get the same thing. security
works without quotes; doesn’t work with quotes.Alexander Maryanovsky
07/06/2025, 12:31 PMS.
07/06/2025, 12:42 PMfind-certificate -c Dominik
works too (tried in terminal it works). However, find-certificate -c 3rd Party Mac Developer Application: Dominik
does not work while find-certificate -c "3rd Party Mac Developer Application: Dominik"
worksAlexander Maryanovsky
07/06/2025, 12:45 PMS.
07/06/2025, 12:52 PMAlexander Maryanovsky
07/06/2025, 12:53 PMAlexander Maryanovsky
07/06/2025, 12:54 PMAlexander Maryanovsky
07/06/2025, 12:54 PMS.
07/06/2025, 12:58 PMAlexander Maryanovsky
07/06/2025, 1:00 PMS.
07/06/2025, 1:05 PM2025-07-06T15:01:48.748+0200 [INFO] [org.gradle.process.internal.DefaultExecHandle] Starting process 'command '/usr/bin/security''. Working directory: /Users/domin/IdeaProjects/ClubManager/composeApp Command: /usr/bin/security find-certificate -a -c Developer ID Application: Dominik
2025-07-06T15:01:48.748+0200 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING
2025-07-06T15:01:48.748+0200 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command '/usr/bin/security'.
2025-07-06T15:01:48.755+0200 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTED
2025-07-06T15:01:48.755+0200 [DEBUG] [org.gradle.process.internal.ExecHandleRunner] waiting until streams are handled...
2025-07-06T15:01:48.755+0200 [INFO] [org.gradle.process.internal.DefaultExecHandle] Successfully started process 'command '/usr/bin/security''
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] keychain: "/Users/domin/Library/Keychains/login.keychain-db"
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] version: 512
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] class: 0x80001000
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] attributes:
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] "alis"<blob>=0x446576656C6F706572204944204170706C69636174696F6E3A20444F4D494E494B205354C39642592028423941464E483235325129 "Developer ID Application: DOMINIK ST\303\226BY (B9AFNH252Q)"
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] "cenc"<uint32>=0x00000003
2025-07-06T15:01:48.768+0200 [QUIET] [system.out] "ctyp"<uint32>=0x00000001
2025-07-06T15:01:48.768+0200 [QUIET] [system.out]
[...]
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':composeApp:createDistributable'.
2025-07-06T15:01:48.773+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Could not find certificate for 'Developer ID Application: Dominik' in keychain []
let me know if you need more in between, I can send it as a fileAlexander Maryanovsky
07/06/2025, 1:09 PMPattern.compile("\"alis\"<blob>=\"([^\"]+)\"")
For you, the output is
"alis"<blob>=0x446576656C6F706572204944204170706C69636174696F6E3A20444F4D494E494B205354C39642592028423941464E483235325129 "Developer ID Application: DOMINIK ST\303\226BY (B9AFNH252Q)"
Alexander Maryanovsky
07/06/2025, 1:10 PMAlexander Maryanovsky
07/06/2025, 1:10 PMAlexander Maryanovsky
07/06/2025, 1:11 PMS.
07/06/2025, 1:13 PMS.
07/06/2025, 1:13 PMAlexander Maryanovsky
07/06/2025, 1:14 PMT\303\226BY
, although I have no idea what this encoding is.Alexander Maryanovsky
07/06/2025, 1:15 PM[^\"]*
to the regex after =
S.
07/06/2025, 1:15 PMAlexander Maryanovsky
07/06/2025, 1:16 PMAlexander Maryanovsky
07/06/2025, 1:18 PMS.
07/06/2025, 1:22 PMS.
07/06/2025, 1:24 PMAlexander Maryanovsky
07/06/2025, 1:28 PMAlexander Maryanovsky
07/06/2025, 1:28 PMAlexander Maryanovsky
07/06/2025, 1:29 PMS.
07/06/2025, 1:29 PMAlexander Maryanovsky
07/06/2025, 1:29 PMAlexander Maryanovsky
07/06/2025, 1:29 PMsecurity find-certificate
itselfAlexander Maryanovsky
07/06/2025, 1:29 PMS.
07/06/2025, 1:36 PMAlexander Maryanovsky
07/07/2025, 1:29 PMS.
07/08/2025, 9:16 AM