【问题标题】:What is the proper way to set modifiable install path in PackageMaker?在 PackageMaker 中设置可修改安装路径的正确方法是什么?
【发布时间】:2016-09-13 14:34:46
【问题描述】:

首先,我说的是 PackageMaker,一个 GUI 应用程序;不是 packagemaker,一个命令行程序。

我正在尝试制作一个包含三个组件的安装包,安装在不同的位置:

  • XxxxBin.app应用,默认安装到/Applications
  • Xxxx.bundle 插件包,默认安装到/Library/Audio/Plug-Ins/VST/(并重命名为Xxxx.vst,使用安装后脚本很容易实现);
  • 一些资源文件,默认安装在/Library/Company/Xxxx_resources/

并且我希望允许用户在安装过程中更改每个组件的目标目录。

我注意到 PackageMaker 中有两层:choicepackage。当您将应用程序/捆绑包/目录拖到 PackageMaker 中时,它将创建一个新的 choice 和一个新的 package。然而,choicepackage 层都包含 Destination,这让我很困惑。此外,在派生自应用程序或捆绑包的组件页面中,有一个标记为“允许重定位”的复选框,这引入了进一步的混乱。

我未能找到有关这些选项的详细信息。经过多次尝试,我使用了以下布局和选项组合,非常接近我的目标:

  • 三个 choicepackage,每个都包含应用程序、捆绑包或资源目录。
  • 在所有选择层中,用实际的默认安装路径填充目标条目,然后选中“允许备用卷”复选框;
  • 在所有层中,用/填写Destination条目,并选中“允许自定义位置”复选框;
  • 层的所有组件页面中,取消选中所有允许重定位复选框。

然而,它仍然有一个非常奇怪的行为:应用程序被复制了两次,分别复制到它自己的目录,并覆盖了插件包的目录。如果您在已安装的捆绑包上“显示内容”,它将如下所示:

/Library/Audio/Plug-Ins/VST/Xxxx.vst
  |
  +contents
    |
    +-info.plist: after looking on its content, it is actually the app's plist, not the bundle's
    |
    +-MacOS
    |  |
    |  +-Xxxx: the bundle's dynamic library, which is expected to be here
    |  |
    |  +-XxxxBin: the app's executable, which is NOT expected to be here
    |
    +-Resources
       |
       +-Xxxx.xml: some config info for the bundle, which is expected to be here
       |
       +-icon.icns: the app's icon, which is NOT expected to be here

我在这些东西上已经筋疲力尽了,但仍然没有达到我看起来非常简单的目标:多个组件的用户可更改安装目录。真的很感谢能把我从这个泥潭中拉出来的人。非常感谢!

【问题讨论】:

    标签: packagemaker


    【解决方案1】:

    最后我发现真正的原因不是在 PackageMaker 的东西中,而是在被打包的包中。应用程序和插件的包标识符都是空的。在我为它们分配不同的值后,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2011-12-31
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多