如何创建一个与Finder的压缩文件相同的压缩文件“压缩”菜单项?
-
01-07-2019 - |
题
在Mac OS X上,您可以通过选择一些文件并选择“压缩”来从Finder创建zip存档。从上下文菜单或文件菜单。不幸的是,生成的文件与 zip
命令(使用默认选项)创建的存档不同。
这种区别对Apple运营的至少一项服务很重要,该服务无法接受使用 zip
命令创建的档案。必须手动创建存档会阻止我完全自动化我的发布构建过程。
如何在shell脚本中以正确的格式创建zip存档?
编辑:自从很久以前写这个问题以来,我已经发现 ditto
和 zip
之间的关键区别在于它们如何处理符号链接:因为代码签名在app包中包含一个符号链接,它需要保存为链接而不是存储为常规文件。 ditto
默认执行此操作,但 zip
不执行此操作(需要选项 -y
)。 解决方案
其他提示
我有一个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')。
不隶属于 StackOverflow