我用QT开发的程序,再mac上编译出了app,对app程序进行签名公证,目前有一步骤出现了问题,求助。
我的app里面包含了jar包,目前app里面的其他的签名都通过了公证,只有这个jar包一直通不过。
错误提示如下:
{
"severity": "error",
"code": null,
"path": "transfer_mac_0.0.3.48.dmg/transfer.app/Contents/MacOS/fdt-qt.jar/org/lirc/socket/libjunixsocket.jnilib",
"message": "The binary is not signed.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "transfer_mac_0.0.3.48.dmg/transfer.app/Contents/MacOS/fdt-qt.jar/org/lirc/socket/libjunixsocket.jnilib",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
}
jar明明已经是个binary,Not a directory,怎么再对jar包里面的jinlib包进行签名?求各位大神指教。
原来可以对jar解压操作的,搞定哈哈
根据错误提示,需要对org/lirc/socket/libjunixsocket.jnilib这个文件进行签名。这个文件是一个JNI库文件,用于与操作系统进行交互。一般情况下,我们可以使用Mac系统自带的codesign工具对JNI库文件进行签名。
举个例子:
1、打开终端应用程序。
2、使用以下命令导航到应用程序包的目录: cd /path/to/your/app/Contents/MacOS/fdt-qt.jar/org/lirc/socket/
3、使用以下命令对libjunixsocket.jnilib文件进行签名:codesign -s "Your Developer ID" -f --deep libjunixsocket.jnilib 请将 "Your Developer ID" 替换为你的开发者ID
4、签名后,你可以使用以下命令验证签名:codesign -vvvv libjunixsocket.jnilib 如果签名正确,将会显示 "valid on disk"。
5、最后,重新生成应用程序包,并重新进行签名公证即可。
注意:请注意,在进行签名操作之前,要确保拥有适当的签名证书和开发者ID,并且你的证书已经与你的Mac开发者账户关联。