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

使用electron-forge打包macOS应用时如何安全传递Apple ID等签名凭证

环境变量是完全安全的解决方案,这些凭证仅在你本地/CI的打包构建阶段被读取,不会嵌入到最终发布的应用安装包中,下载应用的用户完全无法获取到这些信息,无需担心泄露。

你不需要引入第三方依赖,按以下步骤操作即可:

第一步:将签名配置从package.json迁移到forge.config.js

electron-forge默认支持独立配置文件,比写在package.json里更灵活,也方便读取环境变量。如果你的项目目前还没有这个文件,在项目根目录新建即可。

第二步:选择环境变量设置方式

以下两种方式都不需要安装额外依赖:

  • 本地临时打包场景:直接在执行打包命令时传入变量
    Mac/Linux终端执行:
    APPLE_ID=你的Apple账号 APPLE_ID_PASSWORD=你的应用专用密码 npm run make
    Windows PowerShell执行:

    $env:APPLE_ID="你的Apple账号"
    $env:APPLE_ID_PASSWORD="你的应用专用密码"
    npm run make
    

    该方式无需留存凭证,用完即失效,适合偶尔打包的场景。

  • 高频本地打包场景:将变量写入本地终端配置文件持久化
    打开你当前终端的配置文件(zsh对应~/.zshrc,bash对应~/.bash_profile),添加两行配置:

    export APPLE_ID="你的Apple账号"
    export APPLE_ID_PASSWORD="你的应用专用密码"
    

    保存后执行source ~/.zshrc(对应zsh)或source ~/.bash_profile(对应bash)使配置生效,后续打包直接执行npm run make即可自动读取变量。
    这类配置文件存放在你的系统用户目录下,不会被提交到项目Git仓库,安全性有保障。

  • CI/CD自动打包场景:直接在对应CI平台的加密环境变量配置面板添加上述变量即可,所有主流CI平台都支持加密存储敏感变量,不会泄露。

第三步:在forge.config.js中读取环境变量

直接通过process.env调用你设置的变量即可,参考配置示例:

module.exports = {
  packagerConfig: {
    // 其他打包配置
    osxSign: {
      // 签名配置可留空,自动读取系统钥匙串中的证书
    },
    osxNotarize: {
      appleId: process.env.APPLE_ID,
      appleIdPassword: process.env.APPLE_ID_PASSWORD,
      teamId: process.env.APPLE_TEAM_ID // 如有团队ID也按同样方式配置
    }
  },
  // 其他forge配置项
}

注意事项

不要在项目目录下的任何可提交文件(包括package.json、.js配置文件等)中硬编码敏感凭证,避免误提交到Git仓库造成泄露。

内容的提问来源于stack exchange,提问作者SeanRtS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:15:03