Codesign verify返回无效参数

cod*_*nd1 1 macos xcode codesign

我有一个在我的构建服务器上签名的应用程序(没有错误).显然出现了问题,当我在Finder中打开它时,我收到一条消息,指出应用程序已损坏.

问题是,当我这样做

codesign --verify --verbose MyApp.app

我明白了

MyApp.app: Invalid argument

它适用于Applications文件夹中的任何其他App.我希望在签名被破坏方面得到更详细的错误.

有没有选择获得更多细节?什么可能导致这种行为?

cod*_*nd1 5

@ l'L'l的答案对于如何获得更详细的日志是正确的,所以我接受了它.

但是,作为参考,真正的问题是zip命令.在我的构建服务器上,我压缩构建的应用程序包.然而,我使用zip命令行工具这样做,它没有正确处理别名.因此,当您的捆绑包中有框架时,它们通常会有指向当前二进制版本和标头的别名.当您使用zip -r这些别名进行压缩时,将解析这些别名.然后,代码签名当然不再有效.

在Mac上压缩文件的正确方法是使用以下ditto命令:

ditto -c -k --keepParent --sequesterRsrc "my source file" "myArchive.zip"
Run Code Online (Sandbox Code Playgroud)

cp复制命令也是如此.cp -r将展开别名文件.正确的复制命令是cp -R


它之前一直使用'错误'命令.我想OS X 10.9.1中的某些内容在使用comamnd行工具或签名验证时发生了变化......