gpt4 book ai didi

objective-c - pkgbuild postinstall 脚本在其他人的 Mac 上导致 "Installation failed"

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:22 24 4
gpt4 key购买 nike

当我将安装后脚本附加到 pkg 时,我的自定义安装程序出现了问题。在我的计算机上安装工作正常,但在其他用户的系统上安装了 .app,但安装后脚本没有执行就失败了。

如果我删除 pkgbuild 上的 --scripts 参数,安装程序不会产生任何问题。如果我添加它(即使 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 中,安装后脚本运行并正常运行。在其他系统上,安装后似乎根本没有执行。

它已经在 OSX 10.8 和 10.7 上进行了测试,并且都遇到了同样的问题。 postinstall 脚本在所有系统上独立测试(在终端中使用 ./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

可能导致此问题的原因是什么?

最佳答案

问题的原因似乎是 if 语句。当它不存在时,if 的内容可能会导致错误触发,除非已经安装了启动代理。

我通过切换代码解决了这个问题:

#!/usr/bin/env sh
set -e

# Launch agent location
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
launchctl unload "$LAUNCH_AGENT_DEST" || true
rm -f "$LAUNCH_AGENT_DEST" || true

# Install launch agent
cp "$LAUNCH_AGENT_SRC" "$LAUNCH_AGENT_DEST" || true
launchctl load "$LAUNCH_AGENT_DEST" || true

# Open application
open -a "MyApp"

exit 0

我之前在测试空脚本时犯的错误是最后没有 exit 0。所以现在当我开始工作时,我可以激活代码的不同行并查看导致错误的原因。

关于objective-c - pkgbuild postinstall 脚本在其他人的 Mac 上导致 "Installation failed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com