Создание пакетов установщика OS X от горного льва до льва или снежного барса - программирование
Подтвердить что ты не робот

Создание пакетов установщика OS X от горного льва до льва или снежного барса

Я упаковываю приложение 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, но результат тот же.

4b9b3361