我的产品安装程序使用 pkgbuild 和 productbuild 运行良好。但是,现在我正试图弄清楚如何使我的安装程序也可以用作卸载程序。我可以通过修改我的 distribution.xml 文件为用户显示卸载选择,如下所示:
<choices-outline>
<line choice="install"/>
<line choice="uninstall"/>
</choices-outline>
<choice id="install" visible="true" title="Install" description="Installation description goes here">
<pkg-ref id="com.prosc.RemoteExecution.install.pkg">#installer.pkg</pkg-ref>
</choice>
<choice id="uninstall" visible="true" title="Uninstall" description="Uninstaller description goes here" start_selected="false">
<pkg-ref id="com.prosc.RemoteExecution.uninstall.pkg">#installer.pkg</pkg-ref>
</choice>
但是当他们选择卸载时,我需要我的安装后脚本以某种方式知道他们选择了哪个选项。我看不到安装后脚本有任何方法知道这一点 - 环境变量中没有任何内容可以表明这一点,也没有包含在传递给我的脚本的参数中。
我突然想到,我可以编写一个单独的卸载包,使用它自己的单独的安装后脚本,然后将它作为一个组件包含在我的整个产品中,但这似乎是很多额外的设置工作。
如果基于用户做出的安装选择存在细微的行为差异怎么办?我需要为每个选择制作一个单独的包组件吗?
是否有一个不需要额外组件包的好解决方案,或者我应该只制作单独的组件包以进行安装/卸载?