Создание .DMG - PullRequest
       11

Создание .DMG

19 голосов
/ 15 декабря 2008

Я хочу создать файл dmg для моего проекта Mac. Может кто-нибудь сказать, пожалуйста, как это сделать? Это мой первый проект для Mac, и я понятия не имею, как поступить Я также хочу дать пользователю возможность запускать приложение при запуске. Как мне это сделать?

Спасибо.

P.S. Я также хочу добавить пользовательское лицензионное соглашение.

Ответы [ 3 ]

27 голосов
/ 15 декабря 2008

Для этого вручную:

Метод 1:

  • Создайте папку с файлами, которые будет содержать ваш DMG.

enter image description here

  • Утилита Open Disk (в /Applications/Utilities/)

enter image description here

  • Перейдите в Файл> Создать> Новое изображение из папки (Cmd + Shift + N)

enter image description here

  • Выберите папку, содержащую ваши файлы
  • Убедитесь, что установлен флажок «Сжатый», затем укажите место, в котором вы хотите сохранить созданный DMG * ​​1039 *

enter image description here

enter image description here

enter image description here

Метод 2:

Чтобы сделать такие вещи, как установка фонового изображения, может быть немного запутанным (Вы в основном добавляете фоновое изображение в DMG, устанавливаете свойства окон для использования этого изображения, используя командную строку, вы перемещаете фоновое изображение из background.png .background.png чтобы скрыть)

Я бы порекомендовал iDMG * ​​1066 *, что делает вещи немного менее утомительными.

Вы также можете создать сценарий создания DMG с помощью команды hdiutil. Что-то вроде

hdiutil create -srcfolder mydirtodmg mydmg.dmg

enter image description here

Что касается пользовательского лицензионного соглашения, вам следует обратиться к инструменту, входящему в комплект инструментов разработчика "PackageMaker" - он довольно понятен. Это в /Developers/Application/Utilities/

8 голосов
/ 21 декабря 2012

Если вам нужно добавить пользовательское лицензионное соглашение в образ диска, на этой странице описывается, как это сделать с помощью инструментов командной строки. Суть его заключается в том, чтобы использовать ресурс шаблонного соглашения о лицензировании программного обеспечения, предоставленный в slas_for_udifs_1.0.dmg от Apple, изменить ресурс с текстом EULA и внедрить ресурс обратно в файл образа диска. (Я включаю краткие инструкции ниже в случае, если вышеуказанная ссылка становится недоступной, и для обновления поискового запроса, который она предоставляет в шаге 1.)

  1. Используя свою учетную запись Apple Developer, перейдите на страницу Загрузки и найдите Лицензирование программного обеспечения для UDIF
  2. Скачать и смонтировать образ диска
  3. В терминале:

    cd /Volumes/SLAs_for_UDIFs_1.0
    DeRez SLAResources > /tmp/sla.r
    
  4. Отредактируйте /tmp/sla.r в текстовом редакторе, обновив содержимое ресурса data 'TEXT' (5000, "English SLA"), чтобы он содержал текст вашей новой лицензии.

  5. Разблокируйте файл образа диска, который содержит ваш установщик:

    hdiutil unlatten installer_image.dmg

  6. Добавить отредактированные ресурсы лицензии к образу:

    Rez -a /tmp/sla.r -o installer_image.dmg

4 голосов
/ 10 июня 2009

почему бы вам просто не запустить скрипт из вашего проекта xcode. попробуйте что-то вроде этого:

# be sure to check the man page for hdiutil
# it is very powerful and has tons of options...

hdiutil create -megabytes 54 -fs HFS+ -volname awesome_app_install myAwesomeApplication.dmg
hdiutil mount myAwesomeApplication.dmg
cp -r /build/Release/AwesomeApplication.app /Volumes/awesome_app_install/

затем сохраните ваш скрипт как что-то вроде 'makeDMG.sh' и в вашей цели

выберите добавить-> новый этап сборки-> запустить этап построения сценария
и перетащите свой сценарий в эту фазу сборки.

как только вы все это сделаете, тогда, когда вы создадите свой проект, скрипт создаст образ диска и скопирует в него вашу сборку релиза ...

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

ps: ваше пользовательское лицензионное соглашение должно быть встроено в ваш проект создателя пакетов (который вы также можете очень хорошо написать)

...