首先,我谈论的是一个GUI应用程序PackageMaker;不是packagemaker,一个命令行程序。
我试图制作一个包含三个组件的安装包,安装在不同的位置:
/Applications
; /Library/Audio/Plug-Ins/VST/
(并重命名为 Xxxx.vst ,使用post后很容易实现安装脚本); /Library/Company/Xxxx_resources/
。我希望允许用户在安装过程中更改每个组件的目标目录。
我注意到PackageMaker中有两个层: choice 和 package 。将app / bundle /目录拖到PackageMaker时,它将创建一个新的选择和一个新的包。但是, choice 和 package 层都包含目标,这让我很困惑。此外,在从应用程序或软件包派生的软件包的组件页面中,有一个标有" Allow Relocation"的复选框,它引入了进一步混乱。
我未能找到有关这些选项的详细信息。经过多次尝试,我使用了以下布局和选项组合,这些选项非常接近我的目标:
/
填充目标条目,然后选择"允许自定义位置"复选框; 然而,它仍然有一个非常奇怪的行为:应用程序被复制两次,到它自己的目录,并覆盖插件包的目录。如果你"显示内容"在已安装的软件包上,它看起来像这样:
/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
我对这些东西感到非常疲惫,但仍未达到我的目标非常简单:多个组件的用户可更改安装目录。对于那些可以把我拖出这个泥潭的人来说,我真的很感激。非常感谢!
答案 0 :(得分:1)
最后我发现实际原因不是在PackageMaker中,而是在打包的包内。应用和插件的包标识符为空。在我为它们分配不同的值后,一切正常。