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

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

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

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

Sherm Pendley 15.11.2008 01:39

См. Мой ответ в этом вопросе: stackoverflow.com/questions/2323818/…, который является дубликатом этого.

jcoffland 05.11.2011 02:43
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
2
15 172
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

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

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

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

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

Я действительно ненавижу, когда люди отвечают: «Зачем вам это нужно?» Это такая пустая трата времени.

jcoffland 05.11.2011 02:41

Вместо того, чтобы пытаться обесценить действительный вопрос, попробуйте решить его, а не отговаривать кого-либо найти на него ответ.

Timothy Groote 05.06.2012 18:23

Я не согласен, можно многому научиться из таких ответов «адвоката дьявола». Пока ответ дает представление о типе решаемой проблемы, он абсолютно верен. Часто, задавая вопрос, мы не знаем, какие альтернативы нам доступны.

Mike 23.08.2013 04:50

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

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

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

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

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

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

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

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

Как вы думаете, почему он не тестирует пакет? У вас может быть сервер сборки Linux, который создает пакеты. Ничто не мешает вам позже протестировать OSX или попросить вашу команду тестирования OSX сделать это за вас.

jcoffland 30.07.2013 02:19

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

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

Ответ принят как подходящий

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

http://hogliux.github.io/bomutils

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

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

Начальные тесты этого метода и учебник работают блестяще! Снимаю шляпу, @hogliux. Я нахожусь в ситуации, когда установщик Mac имеет смысл, потому что мне нужно добавлять файлы в уже установленное приложение, а не просто устанавливать свои собственные. Я также запускаю автоматизированные сборки CI, и подготовка всего сервера Mac только для создания одного крошечного установщика - это излишне.

Staffan E 05.06.2014 13:35

Другие вопросы по теме