在Mac OS X上,您可以通过选择一些文件并从上下文菜单或文件菜单中选择“压缩”来从Finder创建zip存档。不幸的是,生成的文件与zip命令(使用默认选项)创建的归档文件不同。
这种区别至少对苹果运营的一项服务很重要,苹果无法接受通过zip命令创建的档案。不得不手动创建归档文件使我无法完全自动化我的发布构建过程。
如何在shell脚本中以正确的格式创建zip归档文件?
编辑:自从很久以前写这个问题以来,我已经发现ditto和zip之间的关键区别在于它们如何处理符号链接:由于应用程序包中的代码签名包含符号链接,因此需要将其保存为链接,而不是存储为常规文件。默认情况下,ditto会执行此操作,但zip不会执行此操作(需要选项-y )。
发布于 2008-09-20 11:27:29
发布于 2010-03-19 04:38:44
我有一个ruby脚本,可以让iPhone应用商店为我构建,但它生成的压缩包不会被iTunes连接接受。如果我使用Finder的“压缩”功能,它们就会被接受。
对我来说,millenomi的答案很接近,但这个命令最终是有效的。iTunes连接接受了我的构建,应用程序获得批准,可以下载没有问题,所以它是经过测试的。
ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip发布于 2010-11-20 11:03:13
man同上所述:
命令: ditto -c -k -- will -keepParent archive.zip将创建一个PKZip归档文件,类似于Finder的压缩功能。
注意--keepParent
https://stackoverflow.com/questions/107903
复制相似问题