OSX pkgbuild: поместите список пакетов в загрузочный диск при установке на альтернативный том
Мы создаем установщик для аудио-плагина, используя pkgbuild. Он состоит из нескольких пакетов (VST, AU, Content, Presets и т. Д.).
Поскольку контент довольно большой, мы хотим разрешить пользователям устанавливать пакет контента на внешние диски. Я понял, что работаю с соответствующими настройками в distribution.xml (customLocationAllowAlternateVolumes="Yes"). Однако, когда содержимое установлено на такой внешний диск, программа установки также помещает файлы.plist и.bom на внешний диск в папку /Library/Receipts (которую он создает) на этом диске (см. Снимок экрана).
Эта структура папок создается на внешнем диске:
Как я могу добиться, чтобы эти файлы помещались на загрузочный диск независимо от того, на какой диск установлен пакет содержимого?
Вот скрипт pkgbuild:
#!/bin/bash
# Name of the package.
NAME="<OurProductName> Content"
IDENTIFIER="com.<OurCompanyName>.content.pkg.<OurProductName>"
# Package version number. The correct number will be set in the build process.
VERSION="1.0.1"
INSTALL_LOCATION="/Library/Application Support/<OurCompanyName>/<OurProductName>"
ROOT_LOCATION="content/"
# Remove any unwanted .DS_Store files.
find "$ROOT_LOCATION" -name '*.DS_Store' -type f -delete
chmod -R +r "$ROOT_LOCATION"
# Build package.
/usr/bin/pkgbuild \
--root "$ROOT_LOCATION" \
--install-location "$INSTALL_LOCATION" \
--identifier "$IDENTIFIER" \
--version "$VERSION" \
--scripts Scripts \
"$NAME.pkg"
Это соответствующий фрагмент из файла дистрибутива:
<pkg-ref id="com.<OurCompanyName>.content.pkg.<OurProductName>" version="1.0.1" auth="Admin" onConclusion="None">Some%20Product%20Name%20Content.pkg</pkg-ref>
<choice id="Content" title="<OurProductName> Content" start_visible="true" start_selected="true" start_enabled="true" customLocation="/Library/Application Support/<OurCompanyName>/<OurProductName>" customLocationAllowAlternateVolumes="Yes" description='You can change the file location for the plugin content file. Click on the folder name in "Location" to select a different one.'>
<pkg-ref id="com.<OurCompanyName>.content.pkg.<OurProductName>"/>
</choice>