当我将安装后脚本附加到 pkg 时,我的自定义安装程序出现问题。在我的计算机上,安装工作得很好,但在其他用户的系统上安装了 .app,但安装后脚本在没有执行的情况下失败。
如果我删除--scripts
pkgbuild 上的参数,安装程序不会产生任何问题。如果我添加它(即使postinstall
脚本为空),则会显示“安装失败”消息。不产生日志。
pkg 是使用类似于以下的脚本构建的:
pkgbuild --identifier $PKG_IDENTIFIER \
--version $APP_VERSION \
--root $APP_PATH \
--scripts Scripts/ \
--install-location /Applications/$APP_NAME.app $TMP_PKG_PATH
productbuild --sign "Developer ID Installer: $COMPANY_NAME" \
--distribution Distribution.xml \
--package-path $INSTALLER_BUILD_PATH $INSTALLER_PKG_PATH
在我的系统上,应用程序安装到 /Applications 中,安装后脚本运行并完成它的业务。在其他系统上,postinstall 似乎根本没有执行。
它已经在 OSX 10.8 和 10.7 上进行了测试,并且都遇到了同样的问题。安装后脚本在所有系统上独立测试(./postinstall
在终端中使用)并且可以工作。
脚本如下所示:
#!/usr/bin/env sh
set -e
# Install launch agent
LAUNCH_AGENT_SRC="/Applications/MyApp.app/Contents/Resources/launchd.plist"
LAUNCH_AGENT_DEST="$HOME/Library/LaunchAgents/com.company.myapp.agent.plist"
# Uninstall old launch agent
if [ -f "$LAUNCH_AGENT_DEST" ]; then
launchctl unload "$LAUNCH_AGENT_DEST"
rm -f "$LAUNCH_AGENT_DEST"
fi
cp "$LAUNCH_AGENT_SRC" "$LAUNCH_AGENT_DEST"
launchctl load "$LAUNCH_AGENT_DEST"
# Open application
open -a "MyApp"
exit 0
什么可能导致此问题?