【问题标题】:Using PackageMaker to install a Mail plugin?使用 PackageMaker 安装邮件插件?
【发布时间】:2026-02-19 16:00:02
【问题描述】:

我正在尝试为我创建的 Mail.app 插件制作安装程序包。它需要做两件事: 1. 将 .mailbundle(只是一个文件夹)安装到 ~/Library/Mail/Bundles 2.运行两个终端命令以启用邮件捆绑

问题的症结似乎源于我试图安装在用户的主文件夹中,因为 PackageMaker 应用程序似乎没有“当前登录的用户”变量,所以当我指定谁应该是文件的所有者。现在,我将自己指定为所有者,认为 PackageMaker 会明智地将其理解为“当前用户”,但似乎并非如此;当我尝试在另一个人的机器上安装软件包时,一个未知用户(可能是我)是该文件夹的所有者,并且启用邮件捆绑包的安装后脚本似乎没有生效(可能是因为安装程序正在以 root 身份运行,这会阻止默认程序写入当前用户的邮件首选项文件)。

我已经做了大量的工作来寻找这些东西,但大多数人似乎都在安装自己的独立应用程序,没有人在做严格存在于主文件夹中的东西。我将尝试一个简单的 shell 脚本,用户可以双击它来安装插件,但我确实需要它作为 pkg 工作,以便 Sparkle 工作。

我想做的另一件事是在安装时检查 Mail 是否正在运行并提示用户退出程序。现在我可以默默地退出程序,但为了安全起见,我宁愿让用户自己退出。我知道这是可能的,因为 iTunes 更新程序会做到这一点,但我在 PackageMaker 中看不到任何直接的方法,所以我猜需要一个更有创意的解决方案。

有什么想法吗?

【问题讨论】:

标签: macos packagemaker


【解决方案1】:

下载 GrowlMail 源代码并查看 MakeFile。我认为您可能需要使用脚本以这种方式移动文件。

【讨论】:

  • 这很好用。我将文件安装到临时文件夹并使用安装后脚本创建目录 /Library/Mail/Bundles 并将邮件包移动到那里。
  • 很好,并且 +1 用于描述我在答案中没有的过程 - 所以现在找到这个的人有完整的答案:首先安装到 tmp 目录,然后使用安装后脚本移动文件。
最近更新 更多