Как упаковать приложение Mac OS для установки? - PullRequest
32 голосов
/ 10 августа 2011

Я знаю, что в Windows есть множество инструментов для установки, которые вы можете использовать для создания программы установки, но в Mac OS я видел два способа установки приложений:

  1. DMG-файл, который вы загружаете, дважды щелкните, а затем запустите приложение изнутри - приложение обычно перетаскивает значок на другой значок (представляющий папку «Приложения») для установки приложения

  2. Другой тип файла, который запускает явно стандартный установщик, который иногда вызывает предупреждение типа «Этот установщик может запустить программу, чтобы определить, можете ли вы продолжить установку»

Что такое «стандартный» способ упаковки приложения для установки на Mac OS? Является ли один из вышеперечисленных рекомендованным Apple способом?

Спасибо.

Ответы [ 5 ]

17 голосов
/ 10 августа 2011

Apple очень четко делает «стандарт» для загрузки программы из App Store. Это позволяет сделать установку приложения прозрачной для обычного пользователя. И, хотите верьте, хотите нет, у нормальных людей много проблем с концепцией установки программы. Конечно, это преимущество связано с определенными затратами, но это не место для этих дебатов - для этого есть множество других мест.

Предполагая, что вы не хотите или не можете идти по пути App Store, PKG и DMG являются распространенными способами распространения программы. Используйте PKG, если вам нужно установить файлы отдельно от пакета приложений (что не должно быть распространенным случаем использования). Во всех остальных случаях используйте DMG, который предлагает пользователю скопировать приложение в папку «Приложения». Но многие из ваших пользователей не поймут, что им нужно это делать (если ваша целевая аудитория не является исключительно знающим пользователем компьютера). Они будут запускать ваше приложение с образа диска. В идеале в этом случае ваша программа обнаружит, что она запускается с образа диска, и предложит скопировать себя в папку «Программы».

12 голосов
/ 13 октября 2013

Пакеты хорошо работает.Если ваш процесс развертывания должен быть простым, это здорово.

Quick build состоит из перетаскивания вашего .app на Package, и это делается.

Для расширенной упаковки вытакже может предоставить сертификат.

http://s.sudre.free.fr/Software/Packages/about.html

8 голосов
/ 09 декабря 2011

Мы обсуждаем две вещи:

  • во-первых и, самое главное, стандартный метод, с помощью которого биты исполняемого файла укладываются на диск так, чтобы система была доступна и правильно зарегистрирована системой
  • секунда, механизм приготовления .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/, в которой рассматриваются причины и способы (хотя в основном для системных администраторов) упаковки для более широкого распространения. Настоятельно рекомендуется лучше понять, как и почему что-то идет не так и чего следует избегать.

6 голосов
/ 08 мая 2013

Попробуйте Айсберг !Еще один создатель пакета.

3 голосов
/ 13 августа 2011

В OS X многие приложения просто создаются как перемещаемые пакеты приложений, которые пользователь просто должен скопировать в папку / Application (или в любое другое место).В других случаях, когда вам необходимо выполнить некоторые операции над машиной (например, добавить пользователей или изменить разрешения), вы можете использовать установщик PKG (например, созданный с использованием PackageMaker ), который позволяет выполнять некоторые предварительные и последующие действия.установочные сценарии и поддержка некоторых основных настроек установки, таких как выбор установочного диска.

Иногда, как и в случае со сложным серверным программным обеспечением, вам требуется больше гибкости, например, для отображения пользовательских страниц конечному пользователю, запрашивающему информацию, необходимую для установкиприложения, такие как порт MySQL и пароль или информация о прокси, чтобы загрузить требования на лету (или просто сделать так, чтобы это выглядело причудливее :)).Для этих случаев существуют другие решения для инсталляторов, такие как BitRock InstallBuilder (отказ от ответственности, я один из разработчиков).InstallBuilder также имеет преимущество в создании многоплатформенных инсталляторов, использующих один и тот же проект с очень небольшими настройками для каждой платформы.

...