如何在mac上的dmg/pkg中包含安装程序依赖项



我有一个mac应用程序(例如:样本。pkg包含Sample.app)以及一些pkg依赖(例如:A.pkg和B.pkg)。当用户运行与这三个包捆绑在一起的dmg/product归档文件时,必须先运行A.pkgB.pkg,然后再安装Sample.pkg

是否有一种方法可以在包装mac应用程序时指定此依赖项,而不需要用户手动检查并按正确的顺序安装它们?

解决方案

有办法。您可以将这样的条目添加到distribution.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<installer-gui-script minSpecVersion="1">
    <title>Application name</title>
    <organization>com.organization</organization>
    ....
    <volume-check>
        <required-bundles description="Some message which UI Installer doesn't show :(">
            <!-- bundle 1 -->
            <bundle id="com.organization.app1" path="Applications/App1.app" />
            <!-- bundle 2 -->
            <bundle id="com.organization.app2" path="Applications/App2.app" />
        </required-bundles>
    </volume-check>
    ....
</installer-gui-script>

文档在这里(required-bundles)。

可以在github上找到一些例子。

缺点

在苹果安装程序中有一些错误,required-bundles description说:

属性
|----------------|------------------|------------------------------------------------------------|
| Attribute name |       Type       |                       Description                          |
|----------------|------------------|------------------------------------------------------------|
|                |                  | _Optional._ Values: `true` (default) to require all of     |
|     `all`      |     Boolean      | the specified bundles, or `false` to require at least one  |
|                |                  | of them.                                                   |
|----------------|------------------|------------------------------------------------------------|
|  `description` |   String,        | _Optional._ A description of the required bundles,         |
|                | localization key | displayed to the user if the requirement is not met.       |
|----------------|------------------|------------------------------------------------------------|

所以description的消息应该显示,但是我在任何地方都看不到它,所以用户可能会困惑为什么他无法安装应用程序。

它只是警告:You can't install <your application> here, <your application> do not allow it.(对不起,从我的本地化翻译回英语)。

我看到一些安装包运行自定义脚本形式安装检查调用它从安装JavaScript,使用system.run('script_name')

相关内容

  • 没有找到相关文章

最新更新