使用 productsign 签署 pkg 后无法使用 codesign 检索证书

Unable to retrieve the certificate with codesign after signing the pkg with productsign

过去 2 周我一直在努力发布 .pkg。

如果我执行codesign -dvv app-version.pkg

我得到app-version.pkg: code object is not signed at all

那我要用productsign --sign "3rd Party Mac Developer Installer: xxx (yyy)" ./app-version.pkg ./app-version-signed.pkg

签名

输出为:

productsign: signing product with identity "3rd Party Mac Developer Installer: xxx (yyy)" from keychain /Users/<user>/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 ./app-version-signed.pkg

当我用 codesign -dvv app-version-signed.pkg 检查我的代码时,我得到了相同的结果。 app-version-signed.pkg: code object is not signed at all


我们正在使用 electron-builder 构建 pkg,但 pkg 尚未签名。该应用已使用 Developer ID application3rd Party Mac Developer Application.

签名

简答:使用 pkgutil --check-signature 而不是 codesign -dvv

长答案:平面包使用的签名格式与其他东西有些不同,您需要使用不同的工具来签名并检查签名。具体来说,使用 productsign 而不是 codesign 来签名,并使用 pkgutil 而不是 codesign 来检查签名。

当你在包裹上使用 codesign -dvv 时,它正在寻找它的签名格式,而实际上那里没有。