使用 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 application
和 3rd Party Mac Developer Application
.
签名
简答:使用 pkgutil --check-signature
而不是 codesign -dvv
。
长答案:平面包使用的签名格式与其他东西有些不同,您需要使用不同的工具来签名并检查签名。具体来说,使用 productsign
而不是 codesign
来签名,并使用 pkgutil
而不是 codesign
来检查签名。
当你在包裹上使用 codesign -dvv
时,它正在寻找它的签名格式,而实际上那里没有。
过去 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 application
和 3rd Party Mac Developer Application
.
简答:使用 pkgutil --check-signature
而不是 codesign -dvv
。
长答案:平面包使用的签名格式与其他东西有些不同,您需要使用不同的工具来签名并检查签名。具体来说,使用 productsign
而不是 codesign
来签名,并使用 pkgutil
而不是 codesign
来检查签名。
当你在包裹上使用 codesign -dvv
时,它正在寻找它的签名格式,而实际上那里没有。