Подтвердить что ты не робот

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

В Mac OS X вы можете создать zip-архив из Finder, выбрав несколько файлов и выбрав "Сжать" из контекстного меню или в меню "Файл". К сожалению, полученный файл не идентичен архиву, созданному командой zip (с параметрами по умолчанию).

Это различие имеет значение, по крайней мере, для одной службы Apple, которая не может принимать архивы, созданные с помощью команды zip. Необходимость создания архивов вручную мешает мне полностью автоматизировать процесс сборки релиза.

Как создать zip-архив в правильном формате в оболочке script?

EDIT: Я давно понял, что ключевое различие между ditto и zip заключается в том, как они обрабатывают символические ссылки: поскольку подпись кода внутри пакета приложений содержит символическую ссылку, она нуждается в для сохранения в качестве ссылки и не сохраняться в виде обычного файла. ditto делает это по умолчанию, но zip не выполняет (требуется -y).

4b9b3361

Ответ 1

Используйте инструмент командной строки ditto следующим образом:

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

Дополнительную информацию см. в справочной странице ditto.

Ответ 2

У меня есть ruby ​​ script, который заставляет iPhone App Store строить для меня, но создаваемые им почтовые индексы не будут приняты iTunes Connect. Они были приняты, если я использовал функцию Finder "Compress".

millenomi ответ приблизился для меня, но эта команда - это то, что закончилось тем, что работало. iTunes Connect принял мою сборку, и приложение получило одобрение и не может быть загружено без проблем, поэтому оно протестировано.

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

Ответ 3

man ditto утверждает:

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

notice --keepParent

Ответ 4

Подсказка в теге "автоматизация".

Создайте действие в Automator.app, которое использует действие "Создать архив", вызывается из командной строки (см. "automator" ).