Мы обсуждаем две вещи:
- во-первых и, самое главное, стандартный метод, с помощью которого биты исполняемого файла укладываются на диск так, чтобы система была доступна и правильно зарегистрирована системой
- секунда, механизм приготовления .app, как рекомендует Apple
Старая маркетинговая страница на сайте Apple говорит, что рекомендуется создавать пакеты (чтобы приложение Installer могло перемещать биты на месте) с приложением PackageMaker.
Его использование описано здесь: mactech.com/articles/mactech/Vol.25/25.03/2503MacEnterprise-PackagingforSystemAdministrators/index.html.
Но, как уже упоминали другие, слон в комнате - это MacAppStore (для краткости MAS). До его дебюта стандартными для крупных компаний были их собственные пользовательские сценарии, свернутые в более ранний пакет «bundle» или использующие исполняемый файл, такой как установщик VISE. Маленькие разработчики обычно пытались сделать их приложение устанавливаемым с помощью перетаскивания, распространяемого в zip-архивах или образах дисков (для простоты).
MAS отличается: с 10.7 он использует формат пакета (который дебютировал в 10.5), называемый плоским пакетом (на самом деле это xar-архив, объяснение здесь )
который передается по http в скрытую папку, устанавливается непосредственно в приложения (после чего временная папка, в которую он загружен, удаляется). Он сбрасывает свою квитанцию и файл счета или материалов в / private / var / db и поэтому может быть проверен встроенным средством командной строки pkgutil, описанным здесь: mactech.com/articles/mactech/Vol.25/25.12 /2512MacEnterprise-PackagesReceiptsandSnow/index.html
Преимущество использования формата плоского пакета состоит в том, что вы можете передавать данные по сети более безопасно и эффективно, но с ним не так легко работать, как с пакетными пакетами, если вы регулярно тестируете и модифицируете пакет или выполняете итерацию для убедитесь, что скрипты, которые выполняют действия или проверки, работают хорошо. Даже если файл не используется, для большей гибкости рекомендуется помещать файл pkg в архив или образ диска. Больше инструментов распространения ожидают DMG, чем zip, так что это тоже.
Помимо того, что Apple рекомендует и что является стандартной, обычной практикой, есть эта статья: https://www.afp548.com/2010/06/03/the-commandments-of-packaging-in-os-x/, в которой рассматриваются причины и способы (хотя в основном для системных администраторов) упаковки для более широкого распространения. Настоятельно рекомендуется лучше понять, как и почему что-то идет не так и чего следует избегать.