我将按照this教程打包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-但在较早的版本中会引发“无法在此计算机上安装”错误;日志显示“安装检查失败”。信息。

    但是,无论是在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>

    参见Distribution Definition XML Schema Reference

    关于macos - 制作从Mountain Lion到Lion或Snow Leopard的OS X安装程序包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19156465/

    10-16 18:24