macOS下安装pkg包后自动启动Electron应用的有效方案咨询
macOS PKG包安装后自动启动应用的有效解决方法
问题根源
你的postinstall脚本无法运行,核心原因是PKG的后置脚本默认以root权限执行,而open命令依赖当前登录用户的UI会话环境,直接调用无法触发应用启动。
修正后的解决方案
1. 更新postinstall.sh脚本
替换原脚本为以下内容,确保在当前登录用户的环境中启动应用:
#!/bin/sh # 获取当前登录的非root用户 CURRENT_USER=$(stat -f "%Su" /dev/console) # 获取用户的HOME目录 USER_HOME=$(eval echo ~$CURRENT_USER) # 切换到用户环境启动应用(使用应用完整路径更可靠) sudo -u "$CURRENT_USER" -i open "/Applications/test.app" exit 0
2. 确保脚本权限与配置正确
- 给脚本添加可执行权限:
chmod +x scripts/postinstall.sh - 确认
package.json中的路径配置无误:"build": { "mac": { "target": [ { "target": "pkg", "arch": ["x64"] } ] }, "pkg": { "scripts": "./scripts/postinstall.sh" } }
3. 关键注意事项
- 应用路径建议写完整的
/Applications/test.app,避免因系统环境变量差异导致找不到应用; - 若应用名称包含空格,必须用引号包裹路径;
- 打包时确保electron-builder正确处理脚本的签名,无需额外配置,默认会包含脚本到pkg包中。
内容的提问来源于stack exchange,提问作者agentx
相关产品推荐
相关产品推荐

