首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codesign验证返回无效参数

Codesign验证返回无效参数
EN

Stack Overflow用户
提问于 2014-01-17 15:09:05
回答 2查看 2.4K关注 0票数 2

我有一个应用程序是在我的构建服务器上签名的(没有错误)。显然,有些地方出了问题,当我在Finder中打开它时,我收到一条消息,说明应用程序被损坏了。

问题是,当我这么做

codesign --verify --verbose MyApp.app

我得到了

MyApp.app: Invalid argument

它与应用程序文件夹中的任何其他应用程序一起工作。我希望得到一个更详细的错误的签名是如何打破。

有没有更多的细节可供选择?是什么导致了这种行为?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-17 17:53:59

您可以通过使用像这样的详细标志来增加详细信息:

代码语言:javascript
复制
codesign --verify --verbose=4
codesign --verify -vvvv
codesign -v -vvvv

这些都是相同的命令,只是输入的方式不同:

-v,--详细集(带有数值)或增加输出的详细级别。如果没有详细的选项,就不会以经典的UNIX风格在成功时产生任何输出。如果没有其他选项请求不同的操作,则第一个-v将被解释为-验证(而不会增加详细内容)。

根据苹果的手册页,苹果认为这是一个“bug”

-v选项的双重含义,既表示详细,也表示验证,使一些人感到困惑。如果您觉得它令人困惑,请使用明确的长表单--详细和--验证。

还有一些可用的免费实用程序,如协同设计检查器,这可能很有用。

票数 1
EN

Stack Overflow用户

发布于 2014-01-21 15:59:37

@l‘l关于如何获得更详细的日志,答案是正确的,所以我接受了。

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

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

代码语言:javascript
复制
ditto -c -k --keepParent --sequesterRsrc "my source file" "myArchive.zip"

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

以前,它一直在使用“错误”的命令。我想在OSX10.9.1中,有些东西是用comamnd行工具或签名验证来更改的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21189162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档