我正在尝试为我创建的一个Mail.app插件创建一个安装程序包。它需要做两件事: 1.将.mailbundle (它只是一个文件夹)安装到~/Library/ Mail /Bundles 2.运行两个终端命令来启用邮件包
问题的症结似乎源于我试图安装在用户的主文件夹中的事实,因为PackageMaker应用程序似乎没有“当前登录的用户”变量,所以当我指定谁应该是文件的所有者时。现在我将自己指定为所有者,以为PackageMaker会明智地将其理解为“当前用户”,但它似乎并非如此;当我试图在另一个人的机器上安装软件包时,一个未知用户(很可能是我)是该文件夹的所有者,并且启用邮件包的postinstall脚本似乎没有生效(可能是因为安装程序是以根用户身份运行的,这会阻止默认程序写入当前用户的邮件首选项文件)。
我做了大量的工作来寻找这些东西,但大多数人似乎都在安装自己的独立应用程序,没有人会做那些严格存在于主文件夹中的事情。我将尝试一个简单的shell脚本,用户可以双击它来安装插件,但我真的需要它作为一个pkg来工作,这样Sparkle才能工作。
我希望能够做的另一件事是检查Mail在安装时是否正在运行,并提示用户退出程序。现在我可以静默地退出程序,但为了安全起见,我宁愿让用户自己退出。我知道这是可能的,因为iTunes更新器会做到这一点,但我在PackageMaker中看不到任何简单的方法来做到这一点,所以我猜需要一个更有创意的解决方案。
有什么想法吗?
发布于 2011-03-03 00:29:52
下载GrowlMail源代码并查看MakeFile。我认为您可能需要使用脚本以这种方式移动文件。
https://stackoverflow.com/questions/4618034
复制相似问题