Electron Forge配置Post Install脚本后.pkg安装后不执行求助
排查Electron Forge PKG安装后postinstall.sh不执行的问题
以下是针对该问题的具体排查方向和解决方案:
脚本权限与路径校验
- 确保
postinstall.sh拥有可执行权限:在项目根目录执行chmod +x build/Scripts/postinstall.sh,Electron Forge打包时会保留文件权限,无执行权限的脚本会被安装器直接跳过。 - 替换脚本内的相对路径:PKG安装时的执行环境与终端不同,相对路径会失效。比如启动应用的命令,应使用绝对路径
open /Applications/YourAppName.app,或者通过PKG脚本内置变量$3获取目标安装目录(例如open "$3/YourAppName.app")。
- 确保
脚本命名与配置路径检查
- 严格使用小写脚本名:
@electron-forge/maker-pkg仅识别全小写的脚本文件名,postinstall.sh不能写成PostInstall.sh或POSTINSTALL.sh,大小写错误会导致脚本无法被触发。 - 确认
scripts配置路径:检查forge.config.js中scripts: "./build/Scripts"是否为项目根目录的相对路径,路径错误会导致打包时无法复制脚本到PKG构建环境。
- 严格使用小写脚本名:
添加日志调试定位问题
- 在
postinstall.sh开头添加日志输出,便于判断脚本是否被执行及出错位置:
安装完成后查看#!/bin/bash # 将日志输出到临时文件 exec > /tmp/postinstall.log 2>&1 echo "Postinstall script started at $(date)" # 后续脚本逻辑/tmp/postinstall.log的内容,若日志为空则脚本未被触发,若有报错则针对性修复。
- 在
验证签名与配置结构
- 填充有效的
identity字段:PKG脚本需要管理员权限执行,若identity为空(未签名),系统可能拦截脚本运行,需填写有效的开发者ID安装器证书名称。 - 检查配置拼写:确保maker配置中使用
platforms(复数)而非platform,拼写错误会导致该maker不生效。完整配置示例:module.exports = { makers: [ { name: '@electron-forge/maker-pkg', config: { identity: 'Developer ID Installer: Your Name (XXX)', scripts: './build/Scripts' }, platforms: ['darwin'] } ] };
- 填充有效的
内容的提问来源于stack exchange,提问作者Mani Bharath
相关产品推荐
相关产品推荐

