Как создать zip-файл в том же формате, что и пункт меню Finder «Сжать»?
-
01-07-2019 - |
Вопрос
В Mac OS X вы можете создать zip-архив из Finder, выбрав несколько файлов и выбрав «Сжать» в контекстном меню или меню «Файл».К сожалению, полученный файл не идентичен архиву, созданному zip
команда (с параметрами по умолчанию).
Это различие имеет значение по крайней мере для одного сервиса Apple, который не принимает архивы, созданные с помощью zip
команда.Необходимость создавать архивы вручную не позволяет мне полностью автоматизировать процесс сборки релиза.
Как я могу создать zip-архив в правильном формате в сценарии оболочки?
РЕДАКТИРОВАТЬ:С момента написания этого вопроса давно я понял, что ключевое различие между ditto
и zip
вот как они обрабатывают символические ссылки:поскольку подпись кода внутри пакета приложения содержит символическую ссылку, ее необходимо сохранить как ссылку, а не хранить как обычный файл. ditto
делает это по умолчанию, но zip
нет (вариант -y
требуется).
Решение
Используйте инструмент командной строки ditto следующим образом:
ditto -ck --rsrc --sequesterRsrc folder file.zip
См. то же самое, справочная страница для большего.
Другие советы
У меня есть Ruby-скрипт, который создает для меня сборки iPhone App Store, но созданные им zip-архивы не принимаются iTunes Connect.Они были приняты, если я использовал функцию «Сжатие» Finder.
Ответ millenomi был для меня близок, но именно эта команда в конечном итоге сработала.iTunes Connect принял мою сборку, приложение было одобрено и его можно без проблем загрузить, поэтому оно протестировано.
ditto -c -k --sequesterRsrc --keepParent AppName.app AppName.zip
мужчина то же самое утверждает:
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 действие, использующее действие «Создать архив», вызовите его из командной строки (см. «Автоматизатор»).