最近遇到了mac下认证老失败的问题:
pakage invilad ,code :2
检查LogUrl发现是有的文件并未签名:
{
"severity": "error", "code": null, "path": "2.0.2-0720-1431.dmg/…….app/Contents/PlugIns/quick/libqtquickcontrolsplugin.dylib", "message": "The binary is not signed.", "docUrl": null, "architecture": "x86_64"
}
……一堆这样的提示,
查看脚本,发现codesign 也带了”--deep“ 选项,没道理会导致app依赖的Frameworks和Plugins签名失败才对啊,
codesign --force --options=runtime --timestamp --deep --sign ”……“ xxxx.app
没办法,只能采用笨方法,去掉”--deep",将依赖的文件一个个签名。
部分文件codesign时会报"code object is not signed at all ",就在该条codesign 中加入“--deep”选项。
这样基本每次认证都会成功。检查mac 控制台中也不会再报“code object is not signed at all"了。
参考文献:
1.(1条消息) Mac OS下的Codesign命令_yuanya的专栏-CSDN博客 (mac shell: man codesign)
2.(1条消息) Apple程序的notarization流程_dragonluke的博客-CSDN博客
3.(1条消息) macOS 开发 - Notarization 公证你的 Developer ID 应用_伊织的笔记本-CSDN博客