如何创建一个与Finder的压缩文件相同的压缩文件“压缩”菜单项?

StackOverflow https://stackoverflow.com/questions/107903

  •  01-07-2019
  •  | 
  •  

在Mac OS X上,您可以通过选择一些文件并选择“压缩”来从Finder创建zip存档。从上下文菜单或文件菜单。不幸的是,生成的文件与 zip 命令(使用默认选项)创建的存档不同。

这种区别对Apple运营的至少一项服务很重要,该服务无法接受使用 zip 命令创建的档案。必须手动创建存档会阻止我完全自动化我的发布构建过程。

如何在shell脚本中以正确的格式创建zip存档?

编辑:自从很久以前写这个问题以来,我已经发现 ditto zip 之间的关键区别在于它们如何处理符号链接:因为代码签名在app包中包含一个符号链接,它需要保存为链接而不是存储为常规文件。 ditto 默认执行此操作,但 zip 不执行此操作(需要选项 -y )。

有帮助吗?

解决方案

使用ditto命令行工具,如下所示:

ditto -ck --rsrc --sequesterRsrc folder file.zip

请参阅同上手册页更多。

其他提示

我有一个ruby脚本,可以为我制作iPhone App Store版本,但它生成的拉链不会被iTunes Connect接受。如果我使用Finder的“Compress”,它们就被接受了。功能

millenomi的答案对我来说很接近,但这个命令最终起作用了。 iTunes Connect接受了我的版本,该应用程序获得批准,可以下载没问题,因此已经过测试。

ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip

man ditto说:

 The command:
       ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
 will create a PKZip archive similarly to the Finder's Compress functionality.

通知--keepParent

“自动化”标签中的线索。

在Automator.app中创建一个使用“创建存档”操作的操作,从命令行调用它(参见'automator')。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top