Попытка поиска в Google, но не могу найти никакой информации.
Мне нужно выполнить файл pkg, который существует в файле dmg через код. Причина — обновление программного обеспечения. Я загружаю обновление через свое приложение (которое является dmg) и мне нужно его запустить. В Windows это довольно просто: запустите exe. Не можете понять, как этого добиться на Mac.
Что касается фреймворков, я использую wxWidgets с какао (если это помогает).
Я не знаю способа сделать это напрямую с API-интерфейсами Cocoa, но вы можете использовать внешние команды для этого: /usr/bin/hdiutil attach /path/to/image.dmg
смонтировать образ диска, то что-то вроде /usr/sbin/installer -package /Volumes/mountedvolume/installer.pkg -target /
установить пакет (см. man installer
для получения дополнительной информации и вариантов). Обратите внимание, что если пакет требует прав администратора для установки, вам нужно запустить installer
команда от имени root.
РЕДАКТИРОВАТЬ: чтобы получить полный путь подключенного тома, вам, вероятно, придется проанализировать вывод hdiutil
, Это будет выглядеть примерно так, хотя это будет существенно зависеть от формата образа диска:
/dev/disk2 Apple_partition_scheme
/dev/disk2s1 Apple_partition_map
/dev/disk2s2 Apple_HFS /Volumes/mountedvolume