3

我发现自己处于一个独特的场景中——它必须如此,因为我所做的任何搜索似乎都没有找到任何答案。但也许那里有一位 MacOS X 大师可以为我解答这个问题?

我正在使用 PackageMaker 为我公司的应用程序创建安装过程。这是一个跨平台的应用程序,我的基地是 Linux 和 Windows,所以请原谅我的 MacOS X 不聪明。

我们有两个软件包——呃,应用程序。一个是 Other.app,它是由我们正在“捆绑”我们的软件的外部公司开发的。我们的应用是 Stats.app。我们的应用程序将作为启动代理运行,因此我有一个 .plist 文件,当我在终端中手动安装时该文件可以工作。

我的安装过程目标是这样的:

  1. 将 Other.app 安装到 /Applications
  2. 将 Stats.app 安装到 /Users/<user>/Applications(见注)
  3. 将 Stats.plist 安装到 /Users/<user>/Library/LaunchAgents
  4. 后处理 Stats.plist 以修改“ProgramArguments”键,使路径正确:

    <array>
    <string>%{HOME}/Applications/Stats.app/Contents/MacOS/Stats</string>
    </array>

  5. 后执行一些简单的命令:

    /Application/Other.app/Contents/MacOS/Other --configure=config.txt

  6. 检查退出代码,如果一切正常,告诉用户我们完成了。

我希望——不……祈祷!- 有人知道如何做到这一点的信息。

澄清一下,Stats.app 不需要位于用户主目录中。Launch 代理必须位于主目录中,因为 Stats.app 需要运行中的 Carbon 才能运行。

4

2 回答 2

0

使用每个包的安装后/升级后脚本进行重写。不同版本的 PackageMaker 看起来不同,您所针对的系统也会影响 UI,因此请四处寻找。

我确信 Apple 创建 PackageMaker 是为针对其平台的开发人员提供的一件大衣,因为 Interface Builder、Cocoa 和 Xcode 的生活太简单了。祝你好运!

另外:不要相信它可以正确处理权限;让您的安装后/升级后脚本(通常为两者设置相同的脚本)通过并chmod和chown您的文件。不需要 sudo,您已经以 root 身份运行。

另外:PackageMaker 无法处理安装包含符号链接到创建循环的目录的目录结构。这包括 Apple 分发的一些框架,例如 DotMacKit。

于 2010-10-29T16:42:52.447 回答
0

您可以尝试使用 bash 脚本将应用程序安装到所需的目录,并在脚本中使用 sed 来修改 Stats.plist 文件。

于 2016-07-02T14:31:50.780 回答