You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 03:36:01