2008-11-12 5 views
6

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

Например, у меня есть компьютер с Windows и приложение Java. Я хочу, чтобы Windows PC построил установщик (возможно, в архиве .dmg), который работает с установщиком Apple.

+1

Вы * сделаете * знаете, что пользователи Mac могут просто дважды щелкнуть файл .jar, чтобы запустить его, не так ли? :-) – 2008-11-14 22:39:24

+1

См. Мой ответ в этом вопросе: http: // stackoverflow.com/questions/2323818/packagemaker-for-creation-mac-packages-on-windows-linux/8016507, который является дубликатом этого. – jcoffland 2011-11-04 22:43:23

ответ

4

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

http://hogliux.github.io/bomutils

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

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

1

Итак, пара быстрых вопросов.

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

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

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

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

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

+21

Мне очень нравится, когда люди отвечают «Зачем вам это делать?» Это такая пустая трата времени каждого. – jcoffland 2011-11-04 22:41:25

+2

Вместо того, чтобы пытаться девальвировать действительный вопрос, попробуйте решить его, а не препятствовать любому найти ответ для него. – 2012-06-05 14:23:53

0

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

2

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

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

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

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

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

-1

Поместите все в один файл JAR, добавьте его в ZIP-архив. Готово.

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

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^