使用PackageMaker在安装时运行脚本

Abd*_*aly 16 macos installer packagemaker

我有一个应用程序,我需要创建一个安装程序,并且所有安装程序需要做的(除了复制应用程序)运行的脚本(或可执行文件)不是应用程序本身的一部分.有关如何做到这一点的任何帮助?我在" 需求"选项卡中看到"脚本结果" 操作," 操作"选项卡中还有" 预安装操作",其中包含" 打开文件"操作.这些中的任何一个都可以完成这项工作,还是我应该在其

epa*_*tel 21

是一个很好的操作方法

在安装过程中可以启动7种类型的脚本:

InstallationCheck: 此脚本在安装过程开始时启动(甚至在"身份验证"步骤之前).它可用于检查可以在此计算机上安装Package.

VolumeCheck: 此脚本在"选择目标"步骤中启动.它用于确定可以安装包的卷.

预检: 此脚本在用户单击"安装"按钮后立即启动.

preinstall/preupgrade: 如果有预检脚本,则在预检脚本之后启动此脚本(在单个软件包安装的情况下); 否则只需在用户点击"安装"按钮后.

如您所见,这里有两种类型的脚本.从未安装Package时启动预安装(从Installer.app的角度来看),在安装Package时启动预升级.要确定是否已安装Package,Installer.app将查看以下目录的内容:/ Library/Receipts.如果其中有一个名为PackageName.pkg的文件,则已经安装了Package,否则它是第一次安装.

postinstall/postupgrade: 安装包中的文件后启动此脚本.请参阅(预安装/预升级)以查看启动了哪一个.

postflight: 此脚本在postinstall/postupgrade脚本之后或安装包时启动.


joo*_*oon 5

我只是设法将Shell脚本包含在我使用PackageMaker创建的包中.我需要在安装后将我的应用程序添加到登录项中,因此我调用了一个脚本postflight.sh并将其放入文件夹中.(它似乎适用于任何位置)

然后在我的包中,我有应用程序.在内容,包:应用程序中,在"脚本"选项卡中,我选择了postflight.sh"Postflight"部分.而已.

我的postflight.sh开始

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

然后它有一些脚本将应用程序放入登录项目.当我没有那个时,我可以制作包,但安装失败了.希望这是有帮助的.