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

StackOverflow https://stackoverflow.com/questions/283480

  •  08-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

Теперь можно создать собственный установщик 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 с помощью этого метода, и до сих пор у нас не было серьезных проблем.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top