【问题标题】:Using scripts in PackageMaker (Mac OS X)在 PackageMaker (Mac OS X) 中使用脚本
【发布时间】:2011-10-25 10:49:00
【问题描述】:

我正在尝试在 Mac 上为我的应用程序构建安装包(有两个 .app-s)。其中一个是 GUI,另一个是代理(服务)。安装包必须在安装结束时运行脚本(这是我知道的唯一方法),以便将代理安装为代理。还有一个 .plist 文件安装在 /Library/LaunchAgents 中,但这是 PackageMaker 自动执行的操作(即不需要脚本)。

问题是...我无法让脚本运行。最后我得到“安装失败”。 我不知道问题是什么。有人可以帮忙吗?

更多细节:

  • 我正在尝试在飞行后步骤(安装完成后)执行此操作。只是猜测...我是否需要使用相同的名称(例如 postflight)调用我的文件?
  • 我想这是我设置的正确目录和路径。经过数十次尝试,在最后一次我将 PackageMaker 文档所在的路径设置为“相对路径”(在同一个文件夹中,我有脚本)。关于可能导致问题的路径,我应该知道一些重要的事情吗? (事实上​​,构建是成功的)
  • 我是否必须写一些特定的东西才能执行脚本?我有以下脚本: MyInstall.sh

包含以下内容(不带引号):

"#!/bin/sh

sudo launchctl load /Library/LaunchAgents/com.MyCompany.MyService.plist"

(请注意 com.Mycompany.MyService.plist 已经存在 - 它在安装时将其放在那里)。

附:在我尝试使其工作的一些尝试中,PackageMaker 失败了。

有人可以帮忙吗?

【问题讨论】:

    标签: macos scripting packagemaker


    【解决方案1】:

    您可以查看安装日志。

    安装程序应用程序运行时,进入窗口菜单并选择安装日志。这将打开一个单独的日志窗口。在此窗口中,从组合框中选择Display All。您将能够看到您的脚本失败的原因。

    【讨论】:

    • 谢谢。我不知道它有信息(如日志)写在某个地方,也不知道它可能在哪里。我不确定我做了什么让它工作(也许是我将脚本设置为可执行文件,使用 chmod),或者我不知道我做了什么重要的事情,但是在这样做之后,我又试了它奏效了。感谢您告诉我有关日志以及在哪里可以找到它(现在我可以在发生某些事情时看到原因)
    【解决方案2】:

    我自己也有过这样的经历。这就是我发现的。 为了安装成功,您的 sript 必须明确返回 0(即“成功”)。 如果您的脚本中的命令结果不是 0 并且您没有调用

    exit 0
    

    作为最后一个脚本语句,您的安装会告诉您它失败了。

    如果您不使用脚本的返回值并且您确定脚本工作正常 - 只需在脚本的最后一行添加“exit 0”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 2016-01-02
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多