Создание красивого установщика dmg для Mac OS X

Я сделал свое первое приложение Qt для Mac OS X. Теперь я хочу создать красивый файл .dmg, который позволит пользователю легко установить его. Я думаю о чем-то вроде firefox (см. Рисунок): введите описание изображения здесь

Я совершенно новичок в этом, поэтому даже не знаю, с чего начать.


person xx77aBs    schedule 30.12.2011    source источник
comment
Может быть, это поможет вам stackoverflow.com/questions/96882/   -  person Roger Lindsjö    schedule 30.12.2011
comment
Мне действительно не нужно, чтобы это было автоматизировано, я бы предпочел что-нибудь попроще для начала;)   -  person xx77aBs    schedule 30.12.2011
comment
это может быть полезно: el-tramo.be/guides/fancy-dmg   -  person Mike K    schedule 31.12.2011
comment
@MikeK: Вы должны опубликовать это как ответ, я приму это, это именно то, что я искал;)   -  person xx77aBs    schedule 31.12.2011
comment
Вы можете проверить это руководство. Он шаг за шагом показывает, как создавать красивые DMG только с помощью iDMG (это бесплатное программное обеспечение), Finder и терминала. Это довольно просто.   -  person Igor Augusto    schedule 08.01.2012


Ответы (6)


Обновим этот вопрос, предоставив этот ответ.

appdmg - это простая и удобная программа командной строки с открытым исходным кодом, которая создает dmg-файлы из простой спецификации json. Взгляните на ридми на официальном сайте:

https://github.com/LinusU/node-appdmg

Быстрый пример:

  1. Установить appdmg

    npm install -g appdmg
    
  2. Напишите файл json (spec.json)

    {
      "title": "Test Title",
      "background": "background.png",
      "icon-size": 80,
      "contents": [
        { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
        { "x": 448, "y": 344, "type": "link", "path": "/Applications" }
      ]
    }
    
  3. Запустить программу

    appdmg spec.json test.dmg
    

(отказ от ответственности. Я создатель appdmg)

person Linus Unnebäck    schedule 15.11.2013
comment
По сравнению с другими решениями это удивительно просто. - person Aeolun; 31.10.2014
comment
Ура, Линус, кстати. Уппскаттар дет. - person Prof. Falken; 16.11.2014
comment
Есть ли шанс получить скомпилированный двоичный файл для OSX 10.6.8? Я не знаю, как скомпилировать ваши исходники ... (здесь не особо любителя яблок ...) - person Mark Miles; 06.02.2015
comment
@MarkMiles большая часть кода написана на Javascript и поэтому не соблюдается. Npm позаботится о компиляции всех необходимых исходных файлов (C, Objective-C). Самый простой способ запустить все: 1) Установить brew (brew.sh) 2) Установить Node.js (brew install node) который также объединяет npm. 3) Следуйте быстрому примеру в ответе - person Linus Unnebäck; 07.02.2015
comment
@Lothar Я думаю, что было бы здорово упаковать appdmg в виде двоичного файла для облегчения распространения, но в случае использования я уже включил среду nodejs. Но если вы думаете, что это можно сделать с помощью простого сценария оболочки, я осмелюсь вам попробовать. Взгляните на код, он не такой уж тривиальный. Есть причина, по которой у нас есть другие языки программирования, помимо сценариев оболочки. - person Linus Unnebäck; 13.04.2015
comment
@ jr.root.cs Нет проблем, всегда приятно слышать, что людям это нравится и нравится :) - person Linus Unnebäck; 25.06.2015
comment
Привет, хорошая программа! Еще даже не использовал, но черт возьми, он выглядит идеально! - person Mark Lalor; 15.08.2015
comment
У меня есть исполняемый файл и его ресурсы, как мне получить * .app? Это требуется для использования appdmg? - person Jonathan; 04.11.2015
comment
@JonathanLeaders stackoverflow.com/questions/1596945/building-osx-app- пакет - person Linus Unnebäck; 04.11.2015

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

person Simon Urbanek    schedule 31.12.2011

Ни один из существующих ответов не помог мне; один ответ - ручной, а два других варианта - iDMG и node-appdmg - оба предполагают создание сценария поиска в приложении, что не идеально.

Лучший способ сделать это в качестве этапа автоматической сборки - создать template.dmg, который выглядит именно так, как вы хотите (следуя обычным инструкциям, например, ответ Саймона Урбанека, но не выполняя последний шаг по его сжатию), а затем в вашей сборке сценарий:

  1. Используйте hdiutil, чтобы прикрепить изображение
  2. Используйте cp и т. Д., Чтобы скопировать приложение в смонтированный образ
  3. hdiutil отсоединить
  4. сжать изображение: hdiutil convert "in.dmg" -quiet -format UDZO -imagekey zlib-level = 9 -o "MyApp-0.3.dmg"

В https://github.com/remko/fancy-dmg/ есть make-файл, содержащий эти шаги.

person JosephH    schedule 25.11.2013
comment
Мы работаем над отказом от AppleScript и над кроссплатформенностью node-appdmg. Если вы хотите следить за работой, загляните сюда: github.com / LinusU / node-appdmg / issues? Milestone = 1 & state = open - person Linus Unnebäck; 04.12.2013
comment
@ LinusUnnebäck Это круто; спасибо, что поделились этим! Было бы отлично даже просто удалить зависимость от applescript. - person JosephH; 05.12.2013
comment
Нет проблем :) нам просто нужно иметь возможность написать свой собственный .DS_Store, и все действительно выяснено, мне просто нужно найти время, чтобы реализовать его. (github.com/LinusU/node-appdmg/issues/14) - person Linus Unnebäck; 05.12.2013
comment
.DS_Store не задокументирован, и я уверен, что никогда не будет, так что это не выход. Шаблон кажется единственным надежным решением. - person Lothar; 12.04.2015

Этот скрипт упрощает создание DMG: https://github.com/andreyvit/create-dmg

Также нет зависимости от узла :-)

person Martin Delille    schedule 21.04.2015

Вы можете сделать это с помощью Finder:

  1. Загрузите и распакуйте этот пустой файл DMG (я создал и загрузил это)
  2. Измените размер файла DMG до подходящего размера (подходящий размер обычно равен его текущему размеру плюс размер вашего файла .app). Для этого откройте дисковую утилиту (если вы не знаете, как это сделать, найдите disk utility в Launchpad). Затем нажмите «Изображения» в строке меню и выберите «Изменить размер ...». Вы получите окно для открытия файла, откройте пустой файл DMG.
  3. Дважды щелкните файл DMG, чтобы смонтировать его. На рабочем столе должно появиться устройство с именем Untitled. Переименуйте его в желаемое имя (возможно, вы захотите дать ему то же имя, что и ваша программа).
  4. Откройте это устройство. Вы должны увидеть что-то вроде этого:

    введите описание изображения здесь

    Если все белое, кроме ярлыка для папки «Приложения», нажмите Cmd + J, и откроется окно. Внизу этого окна есть квадрат с надписью «Перетащите сюда изображение». Щелкните этот квадрат, и откроется диалоговое окно «Открыть». В этом диалоговом окне нажмите Cmd + Shift + G, введите /Volumes/(whatever you called the device in step 3)/.image и выберите image.png.

    Здесь все, кроме ярлыка для папки «Приложения», представляет собой всего лишь фоновое изображение. Возможно, вы захотите изменить фоновое изображение (которое содержит цвет фона и стрелку). Для этого откройте файл /Volumes/(whatever you called the device in step 3)/.image/image.png в редакторе изображений и отредактируйте его так, как хотите. После того, как вы это сделаете, вам может потребоваться размонтировать устройство и снова подключить его, открыв файл DMG, чтобы увидеть изменения. В зависимости от того, что вы вставляете в изображение, вам также может потребоваться переместить ярлык в папку «Приложения», чтобы он соответствовал новому фоновому изображению.

  5. Перетащите файл .app в начало стрелки в окне, где открывается устройство из файла DMG, чтобы оно выглядело так:

    введите описание изображения здесь

    Вы можете получить сообщение об ошибке, что недостаточно свободного места. В этом случае вернитесь к шагу 2 и увеличьте размер файла DMG.

  6. Отключите устройство, щелкнув стрелку рядом с именем устройства в Finder:

    введите описание изображения здесь

  7. Преобразуйте файл DMG только для чтения. Для этого откройте терминал и введите это (замените /path/to/dmg/file на путь к файлу DMG и nameOfDmgFile.dmg на имя файла DMG):

    cd /path/to/dmg/file
    hdiutil convert -format UDZO -o newNameOfDmgFile.dmg nameOfDmgFile.dmg
    

    Это создаст новый файл DMG с именем newNameOfDmgFile.dmg (или с любым другим именем, которое вы использовали выше), который является файлом, который вам нужен.

person Donald Duck    schedule 02.11.2017
comment
Почему нам нужно изменять размер DMG (как вы упомянули в пункте 2) - person Krishna Maru; 13.12.2018
comment
@KrishnaMaru Я давно не писал этот ответ, но если я правильно помню, вы получите сообщение об ошибке, если попытаетесь скопировать большой файл в DMG, который слишком мал. - person Donald Duck; 13.12.2018

Для этого вы можете использовать Дисковую утилиту, но если вам нужна картинка в фоновом режиме, вам понадобятся дополнительные инструкции.

Сначала откройте Дисковую утилиту.
Затем щелкните Файл> Новое изображение> Пустое изображение.
Он попросит вас указать его размер и имя.
После этого вы можете помещать в него файлы, а там ты иди!

ПРИМЕЧАНИЕ. Это было протестировано на Mac OS Mojave. Насчет предыдущих версий не знаю.

person Ivan    schedule 19.12.2018