如何检查app或dmg是否已签名?

Nee*_*rma 3 java codesign

我已经为Java应用程序创建了app和dmg.我正在签署以及通过codesign验证dmg和app.

codesign -s"mycomapany name"myproduct.dmg/myproduct.app

使用以下命令验证两者 -

codesign -v myproduct.dmg/myproduct.app

在单独为app和dmg执行此命令时,它没有给出任何消息来确认它们是否已签名?

就像执行命令一样 - jarsigner -verify -certs myproduct.jar返回" jar验证".

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

谢谢

Bri*_*ham 7

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

codesign -v -v myproduct.dmg/myproduct.app
Run Code Online (Sandbox Code Playgroud)

这相当于:

codesign --verify --verbose myproduct.dmg/myproduct.app
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

未签名应用的示例:

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!
Run Code Online (Sandbox Code Playgroud)

  • 对于那些不熟悉的人 - myproduct.dmg/myproduct.app 应该被理解为两者之一。因此,如果您的 myproduct.dmg 包含名为 myproduct.app 的应用程序,那么您将需要单独验证它们。例如:codesign -v myproduct.dmg && echo 签名!然后在安装 dmg 后发出另一个请求来验证应用程序, codesign -v myproduct.app && echo SIGNED! (2认同)