Macos 如何对dmg和其中的应用程序进行协同设计?

Macos 如何对dmg和其中的应用程序进行协同设计?,macos,code-signing,code-signing-certificate,Macos,Code Signing,Code Signing Certificate,我有一个dmg,里面有应用程序。我已经购买了apple开发者许可证,并成功地使用开发者证书签署了dmg。我检查了dmg,它由守门员签字并接受成功。我使用了Sierra 10.12.5来进行编码 然后我复制并运行了安装程序和应用程序。 但无法打开运行该应用程序,因为它来自身份不明的开发人员 运行应用程序会抛出身份不明的开发人员 是否可以对dmg和包括应用程序在内的所有内容进行代码签名?您应该使用开发者ID证书对.App进行签名 如果您是一个团队,您可以在developer.apple.com上生

我有一个dmg,里面有应用程序。我已经购买了apple开发者许可证,并成功地使用开发者证书签署了dmg。我检查了dmg,它由守门员签字并接受成功。我使用了Sierra 10.12.5来进行编码

然后我复制并运行了安装程序和应用程序。 但无法打开运行该应用程序,因为它来自身份不明的开发人员

运行应用程序会抛出身份不明的开发人员


是否可以对dmg和包括应用程序在内的所有内容进行代码签名?

您应该使用
开发者ID
证书对.App进行签名 如果您是一个团队,您可以在developer.apple.com上生成它

codesign--force--deep-s developerCertificate--YourApp.app中的keychain路径tokeychain

--force
将复制您以前的签名

--deep
将对您的内容进行递归签名

-s developerID证书
将通过身份对应用程序进行签名。它应该是这样的:
-s 123C3FF2VA


--keychain
是keychain数据库文件夹的参数,对于Sierra来说,通常是
/Users/username/Library/Keychains/login.keychain db

Andrew,我在ubuntu中编译了dmg,因此无法从dmg中提取.App进行签名。有什么办法吗?pbu你有没有想过?试着这么做会让我:“id›:找不到身份”。如果我使用自签名证书而不是开发人员ID证书,它是有效的,但这显然不是一个解决方案。@KonradRudolph,请检查身份。您还应该在密钥链中使用DeveloperID证书和私有部分。@AndrewVergunov嗯,我想这就是问题所在:我在密钥链中有证书,但我怀疑它缺少私钥组件。不确定这是怎么发生的(我从一位负责苹果开发ID的同事那里得到了.cer文件)。
codesign --verify --deep  --verbose=2 MyQt.app
MyQt.app: code object is not signed at all
In architecture: x86_64