代码签名Mac应用程序下载后损坏

时间:2014-03-13 02:17:26

标签: macos code-signing

我正在尝试使用命令行签署Mac应用程序,我有一个在Mountain Lion中运行良好的脚本,但似乎不再适用于Mavericks。

所有似乎都运行正常并在签名后运行以下内容产生预期的输出:

> spctl -a -vvvv Name.app
Name.app: accepted
source=Developer ID
origin=Developer ID Application: Name, Inc (HA44SZ69G3)

然后我将.app压缩,上传到Amazon S3,下载并解压缩并运行相同的命令 - 输出为:

spctl -a -vvvv Name.app
Name.app: rejected
source=no usable signature

1 个答案:

答案 0 :(得分:6)

您是否使用OS X的命令行工具创建和/或扩展zip存档?它们无法正确保存和恢复OS X的复杂文件系统元数据,因此恢复的应用程序将与您签署的应用程序不同。如果需要在命令行中创建保留元数据的zip存档,请使用:

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip

(见this previous question)。要展开它并重新附加元数据,请使用:

ditto -x -k archive.zip dst_directory