Как создать zip-файл в том же формате, что и пункт меню Finder «Сжать»?

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

  •  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 действие, использующее действие «Создать архив», вызовите его из командной строки (см. «Автоматизатор»).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top