2013-08-02 74 views
2

我已经为Java应用程序创建了应用程序和dmg。我正在签署以及通过codesign验证dmg和应用程序。如何检查应用程序或dmg是否已签名?

协同设计-s “mycomapany名” myproduct.dmg/myproduct.app

验证都使用下面的命令 -

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

在单独为app和dmg执行此命令时,它不会提供任何消息来确认它们是否已签名?

像执行命令 - 的jarsigner -verify -certs myproduct.jar返回 “罐子验证”。

如何验证dmg和应用程序是否正确签名。

由于

回答

4

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

codesign -v -v myproduct.dmg/myproduct.app 

这相当于:

codesign --verify --verbose myproduct.dmg/myproduct.app 

codesign命令也有一个退出值,您可以使用它来获得其结果:

01对于签署应用个

例子:

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! 
+0

感谢您的帮助布里格姆。 –

+0

对于那些新来的人 - myproduct.dmg/myproduct.app应该被理解为两个之一。因此,如果您的myproduct.dmg包含名为myproduct.app的应用程序,那么您需要分别验证这些应用程序。例如:codesign -v myproduct.dmg &&回信已签名!然后在安装dmg之后再次请求验证应用程序,codesign -v myproduct.app && echo SIGNED! – nspire

相关问题