Как создать собственный установщик Mac OS X (на платформе, отличной от Mac)?

Как я могу создать собственный установщик Mac OS X для своего приложения на платформе, отличной от Mac?

например, у меня есть ПК с windows и приложение Java. Я хочу, чтобы ПК с windows построил установщик (возможно, внутри .DMG archive), который работает с установщиком Apple.

7 ответов


теперь можно создать собственный установщик Mac OS X на платформе, отличной от Mac. Как Луи Gerbarg, сложность заключается в спецификации (спецификаций) файл. Однако версия mkbom с открытым исходным кодом (на основе кода osxbom Джозефа Коффленда) теперь доступна по адресу:

http://hogliux.github.io/bomutils

веб-сайт также имеет легко следовать шаг за шагом учебник по созданию установщика Mac OS X на Linux ( http://hogliux.github.io/bomutils/tutorial.html ).

моя компания регулярно создает установщики Mac OS X на linux с помощью этого метода, и до сих пор у нас не было никаких серьезных проблем.


Как уже указывали другие, вы действительно принимаете трудное решение этой проблемы, и ваши пользователи будут проклинать ваше имя за это, если у вас нет действительно хорошая причина для этого. Это правда, что для некоторых типов приложений потребуются установщики для Mac OSX. В их число обычно входят:

  • приложения, которые устанавливают пользовательские драйверы (т. е. расширения ядра)
  • приложения, которым необходимо установить фреймворки или другие ресурсы который по какой-то причине не может быть упакован в пакет приложений
  • приложения, которые должны работать как системная служба и, следовательно, должны запускать некоторые сценарии после установки для запуска приложения во время загрузки
  • плохо написанные программы, которые требуют внесения некоторых изменений в систему пользователя (т. е. установки разрешений на папку или что-то еще), и руки разработчика связаны маркетинговым отделом weenies для распространения приложения самым болезненным образом возможно

хорошо, так что последний пункт немного саркастичен, но вы понимаете, что я имею в виду? :) В принципе, если вы пишете обычное приложение для конечного пользователя, вы должны распространять его обычным способом, который ожидают пользователи Mac, а это файл DMG, содержащий пакет вашего приложения. Или, если вы хотите быть действительно причудливым, вставьте псевдоним в папку "приложения" внутри DMG, чтобы помочь пользователю перетащить программу туда. Если вы не пишете что-то, что должно установить сам на система, а не просто быть система, нет причин использовать установщик здесь. Кроме того, имейте в виду, что это OSX, который уже содержит полностью функционирующую Java JRE, поэтому вам не нужно беспокоиться о упаковке JRE в установщик или что-то в этом роде.

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

опять же, ваш лучший выбор здесь-сделать то, что пользователи этой платформы наиболее удобны (именно поэтому все ответы на ваш вопрос призывают вас не делать установщик). Это означает, однако, что если вы действительно должны сделать установщик, вы должны использовать non-кросс-платформенные рамки; пользователи windows будут чувствовать себя как дома, когда представлен стандартный установщик MSI, и пользователи Mac будут чувствовать себя как дома с Apple Installer pkg. Программа PackageMaker, как известно, ограничена, поэтому, если вы должны, вы должны использовать айсберг. Это будет означать немного больше обслуживания для вас, так как вам нужно будет заботиться о двух (или более) отдельных установщиках, но если ваше программное обеспечение действительно настолько сложно, чтобы требовать этого, вы должны быть готовы принести жертву для комфорта ваших пользователей.


трудно создать .dmg на Windows, но это, безусловно, можно создать .структура файла приложения, которую вы можете затем zip, как отмечали другие. Бывают времена, когда завсегдатай .pkg не будет вырезать его, и вы хотите предоставить диалоги, проверки перед установкой и т. д. Вы можете сделать это с пренадлежащие bitrock installbuilder, вы можете создавать установщики для mac, Linux, Windows, Solaris с каждой из других платформ.


Так, пару вопросиков.

во-первых, зачем вам нужен установщик? Большинство пользователей Mac предпочитают приложения, которые просто перетащить установлен. Если вы не пишете конкретный код Mac OS X, трудно представить, что вам нужно размещать биты в специальных местах, таких как поддержка приложений или LaunchDaemons. Предполагая, что все, что у вас есть, просто идет в одну папку, зачем вообще беспокоиться об установщике?

во-вторых, почему было бы проблемой построить установщик Mac на Mac? Конечно, вы есть macintosh вокруг, чтобы проверить приложение (вы не просто слепо доставки его для Mac без тестирования его на Mac, не так ли?).

хорошо, сказав это, предполагая, что у вас все еще есть веская причина на самом деле построить это на ПК, есть некоторые биты, которые не будут легкими. В основном .pkg-это куча текстовых скриптов, локализаций, архивный файл (Archive.мир.ГЗ) и спецификации (архив.ведомость материалов.)

предполагая, что между сборками не так много изменений, вы можете сделать установщик на Mac, а затем просто перестроить спецификации и pax.ГЗ, замените их на существующие .pkg, и пакетировать несколько фрагментов метаданных. Pax должен быть достаточно простым в обращении (pax-стандартный формат архива), но файл bom может оказаться немного сложнее, поскольку я не считаю, что он публично документирован, и я сомневаюсь, что инструменты для их создания (mkbom) являются частью darwin (не opensource). Поэтому вам нужно будет выяснить это и написать пользовательский инструмент для создания спецификации файл.

другими словами, это, вероятно, будет большой объем работы.


обычный способ установки приложения на Mac-перетащить приложение в папку приложения. Большинство программ поставляются в виде DMG, содержащего приложение и символическую ссылку на папку приложения. Почему ты хочешь, чтобы было по-другому? Вы должны думать Mac, чтобы построить большое приложение Mac! Внешний вид очень важен, особенно для пользователей Mac.


проверьте этот код для чтения файлов спецификаций:https://cauldrondevelopment.com/svn/osxbom/trunk


Поместите все в один файл JAR, добавьте его в ZIP. Сделанный.

но серьезно, вы хотите распространять свое приложение для пользователей Macintosh, не тестируя его сначала? На какой ты планете??