Ответ 1
Элемент <os-version>
должен быть вложен в <allowed-os-versions>
:
<allowed-os-versions>
<os-version min="10.6.6" />
</allowed-os-versions>
Вы также должны установить minSpecVersion="2"
в <installer-gui-script>
.
Я упаковываю приложение Mac после этого учебника.
Пакеты создаются в два этапа:
Сначала я создаю временный пакет с pkgbuild
. Он содержит только двоичные файлы
pkgbuild --root ${ROOT} --scripts ${SCRIPTS} --identifier myapp \
--version ${VERSION} --install-location ${INSTALL_DIR} %PKG%
где %PKG%
- имя временного файла пакета в Distribution.xml
.
Затем я создаю пакет с предыдущим пакетом tmp, Distribution.xml
, фоновым изображением и т.д. с помощью productbuild
:
productbuild --distribution ${DIST_FILE} --package-path ${PKG_PATH} \
--resources ${RESOURCES} ~/myapp.pkg'
Distribution.xml
выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<installer-gui-script minSpecVersion="1">
<title>MyApp</title>
<options hostArchitectures="x86_64"/>
<options customize="never" rootVolumeOnly="true"/>
<welcome file="Welcome.rtf"/>
<license file="license.rtf"/>
<background file="background.png" scaling="proportional" alignment="bottomleft"/>
<os-version min="10.6.6"/>
<options customize="never" require-scripts="false"/>
<product id="myapp" version="%VERSION%" />
<choices-outline>
<line choice="default">
<line choice="myapp"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="myapp" visible="false">
<pkg-ref id="myapp"/>
</choice>
<pkg-ref id="myapp" version="%VERSION%" onConclusion="none">%PKG%</pkg-ref>
</installer-gui-script>
Пакет отлично работает, если он выполняется на машине с той же версией операционной системы, что и она, в том виде, в котором она была создана - Mountain Lion в этом случае, - но в более ранних версиях она выдает ошибку "не может быть установлена на этом компьютере"; log показывает "Не удалось выполнить проверку установки". сообщение.
Однако временная установка пакета работает отлично, как на Lion, так и на Snow Leopard. Каким-то образом productbuild
ограничивает, где приложение может быть установлено. Я пробовал настройку в Distribution.xml
, но результат тот же.
Элемент <os-version>
должен быть вложен в <allowed-os-versions>
:
<allowed-os-versions>
<os-version min="10.6.6" />
</allowed-os-versions>
Вы также должны установить minSpecVersion="2"
в <installer-gui-script>
.