Java 如何检查应用程序或dmg是否已签名?

Java 如何检查应用程序或dmg是否已签名?,java,codesign,Java,Codesign,我已经为Java应用程序创建了应用程序和dmg。我正在通过codesign对dmg和应用程序进行签名和验证 codesign-s“mycopany name”myproduct.dmg/myproduct.app 使用以下命令验证两者- 协同设计-v myproduct.dmg/myproduct.app 分别对app和dmg执行此命令时,不会给出任何消息来确认它们是否已签名 与执行命令一样-jarsigner-verify-certs myproduct.jar返回“jar-verifyed”

我已经为Java应用程序创建了应用程序和dmg。我正在通过codesign对dmg和应用程序进行签名和验证

codesign-s“mycopany name”myproduct.dmg/myproduct.app

使用以下命令验证两者-

协同设计-v myproduct.dmg/myproduct.app

分别对app和dmg执行此命令时,不会给出任何消息来确认它们是否已签名

与执行命令一样-jarsigner-verify-certs myproduct.jar返回“jar-verifyed”

如何验证dmg和app是否已正确签名


感谢

要从
codesign
命令中获得更多输出,请在第一个参数后添加第二个
-v
参数:

codesign -v -v myproduct.dmg/myproduct.app
这相当于:

codesign --verify --verbose myproduct.dmg/myproduct.app
codesign
命令还有一个退出值,您可以使用该值获取其结果:

签名应用程序示例:

codesign -v myproduct.dmg/myproduct.app
echo $?
Output: 0

codesign -v myproduct.dmg/myproduct.app && echo SIGNED!
Output: SIGNED!

codesign -v myproduct.dmg/myproduct.app || echo UNSIGNED!
No output
codesign -v myproduct.dmg/unsigned.app
echo $?
Output: 1

codesign -v myproduct.dmg/unsigned.app && echo SIGNED!
No output

codesign -v myproduct.dmg/unsigned.app || echo UNSIGNED!
Output: UNSIGNED!
未签名应用程序的示例:

codesign -v myproduct.dmg/myproduct.app
echo $?
Output: 0

codesign -v myproduct.dmg/myproduct.app && echo SIGNED!
Output: SIGNED!

codesign -v myproduct.dmg/myproduct.app || echo UNSIGNED!
No output
codesign -v myproduct.dmg/unsigned.app
echo $?
Output: 1

codesign -v myproduct.dmg/unsigned.app && echo SIGNED!
No output

codesign -v myproduct.dmg/unsigned.app || echo UNSIGNED!
Output: UNSIGNED!

感谢您的帮助,Brigham。对于这些新手来说,myproduct.dmg/myproduct.app应该是其中之一。因此,如果您有myproduct.dmg,其中包含一个名为myproduct.app的应用程序,那么您需要分别验证这些应用程序。例如:代码设计-v myproduct.dmg&&echo签名!然后是在安装dmg后的另一个验证应用程序的请求,codesign-v myproduct.app&&echo-SIGNED!