【问题标题】:Installation failed with postinstall script Mac OSX安装后脚本 Mac OSX 安装失败
【发布时间】:2015-02-11 19:33:45
【问题描述】:

我正在尝试使用 pkgbuild 创建软件包,并使用 productbuild 创建产品存档。 如果没有脚本,安装程序会成功安装包。但是使用脚本,它会失败。我搜索了它,但找不到可以解决我的问题的有效解决方案。

pkgbuild --root GameDir --install-location /Applications --component-plist 'info.plist' --scripts ScriptsOSX Game.pkg

.app 名称在 info.plist 中作为 RootRelativeBundlePath 字典值提供

productbuild --distribution ./Distribution.xml --resources ../Resources --packagepath GamePkgDir GameInstaller.pkg

GameDir/ScriptsOSX 文件夹中的脚本: postinsall.sh

#!/usr/bin/env sh
open /Applications/Contacts.app/
exit 0

权限: -rwxr-xr-x@ 1 名员工 12 月 12 日 57 日 19:26 postinstall.sh // 所有人的执行权限,用于测试目的。

fwiw :安装继续时,它会要求输入管理员密码以继续。因此,我相信除了执行权限之外,它还具有运行脚本的权限。

我首先尝试使用 python 脚本。虽然安装成功,但脚本没有执行。我不确定为什么。所有示例都有 shell 或 perl 脚本作为安装脚本,因此尝试使用 shell 脚本。但是安装失败。我确信这是由于尝试执行脚本。但不确定为什么。有什么想法吗?

提前致谢

苏佳塔

编辑: 具有安装后脚本的 info.plist 如下所示 它是一个字典数组,其中一个键:值对是:BundlePostInstallScriptPath = postinstall.sh

【问题讨论】:

  • 当你说它失败时,你会得到什么消息?
  • 错误是“安装程序遇到错误导致安装失败。请联系软件制造商寻求帮助”。不是很有用。软件制造商是我。 :)
  • 发现错误并修复。在这里通知,这样它可能会帮助任何其他在这篇文章中遇到类似问题的人。问题确实出在脚本上。选项“--scripts xxx”中的脚本路径使用了错误的脚本。具有 BundlePostInstallScriptPath = postinstall.py 的旧版本。我将两个 pkg 打包成一个扁平包装。并且正在使用错误的 .py 脚本而不是 .sh 脚本进行测试。 .sh 脚本现在可以运行,并成功打开应用程序。

标签: python macos pkgbuild productbuild


【解决方案1】:

大家可以随时关注/var/log/install.log了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多