Mac 安装程序:如何确定软件包安装是否是交互式的

Mac Installer : How to determine if pkg installation is intercative

Mac 安装程序:如果是交互式安装,我想在安装后脚本中做一些事情(弹出对话框)。 (不是通过 MDM 或命令行)

如何在我的安装后脚本中确定安装是否是交互式的?

也许以后会对某人有所帮助:

有2个选项: (一个人可以结合ose 2个选项来得到完整的解决方案,取决于它的需要)

  1. macos 安装程序设置的环境变量之一是标志 COMMAND_LINE_INSTALL,如果从终端执行安装程序,则该标志设置为 1。

在我的例子中,我只需要检查 COMMAND_LINE_INSTALL 是否存在,如果不存在 - 这意味着这是交互式安装。

重要提示:此环境变量仅在从终端(命令行)安装的情况下存在且值为 1。

从 MDM 安装期间,此变量不存在

============================================= ============================

  1. 另一种解决方案(帮我判断是不是从MDM安装的):

从 post 安装脚本:运行 ps 并检查是否存在“/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer”

如果是 - 这意味着安装是交互式的(通过 mac 安装程序应用程序)。

我使用的线路:

INSTALLER_APP_PATH ="/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer"

if ps aux | grep -v grep | grep -q "$INSTALLER_APP_PATH"
then
     echo "Interactive installation"
else
    echo "Not an interactive installation"
fi