Скриптовый способ создания плоских файлов.pkg с пользовательскими ресурсами и скриптами

Я создал плоский файл.pkg со следующими параметрами на 10.7, используя PackageMaker 3.0.6:

/Applications/PackageMaker.app/Contents/MacOS/Package --root ./myroot \
 --id com.myroot.pkg --title "My Root" --scripts ./scripts --target 10.5 \
 --verbose --resources ./resources --root-volume-only --domain system \
 --no-relocate --versio 1.0 --certificate "My Cert Name"

в resources папка у меня есть background.png, Welcome.rtf а также License.rtf и в scripts папка у меня есть preflight, postflight и различные файлы поддержки для этих сценариев. Получившийся файл.pkg представляется полностью функциональным, за исключением того, что установщик не отображает мой фон, приветствие или лицензию.

Как добавить пользовательский фон, приветствие и лицензию в плоский пакет?

Насколько я могу судить, Distribution В файле.pkg отсутствуют ссылки на фоновые, приветственные и лицензионные файлы.

В качестве обходного пути я попытался использовать xar, Если я распакую пакет с xar, вот так:

xar -xf ./myroot.pkg -C work

и добавьте 3 тега для этих файлов, затем упакуйте их снова с помощью xar:

cd work && xar -cf ../myroot2.pkg *

Я получаю пакет, который начинает установку нормально с моим фоном и т. Д., Но когда приходит время установить мой.app, я получаю эти ошибки (от /var/log/install.log):

 run preupgrade script for myroot
Could not create task for action: run preupgrade script for myroot2
Install failed: The Installer could not extract files from the package for myroot2. Contact the software manufacturer for assistance.
IFDInstallController 863170 state = 7

Я также попробовал Редактор плоских пакетов: откройте myroot.pkg, перетащите Распределение, отредактируйте его, перетащите назад, удалите старый Распределение, сохраните Та же проблема, что и с xar.

Я бы предпочел иметь полностью скриптовое решение, а не использовать графический интерфейс.

Изменить: я также пытался использовать pkgutil развернуть, отредактировать Распространение и повторно раскатать плоский пакет. Это вызывает значки и readme в установщике, но установщик не может распаковать полезную нагрузку. То же самое, если я перезаписать с Flat Package Editor, Я также пытался создать расширенный пакет без PackageMaker (который работает, за исключением 10.8), но когда я пытаюсь сгладить это с помощью pkgutil, в результате снова получается поврежденный пакет.

3 ответа

Решение

PackageMaker всегда был с ошибками, и был признан устаревшим с Mac OS X 10.6 Snow Leopard.

Вы должны использовать pkgbuild вместе с productbuild.

В этом блоге Mac Installers есть несколько полезных постов о Packagemaker, в том числе подробности об использовании и решениях распространенных проблем. Надеюсь, это поможет.

Проверьте Luggage - это вспомогательный файл Makefile, который позволяет создавать пакеты OS X с нормальными Makefile. Отказ от ответственности: я являюсь первоначальным автором для него, хотя есть много других вкладов в это сейчас.

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