我可以在 electron package.json 中使用环境变量来 osx 公证凭据吗?

Can I use environment variables in electron package.json for osx notarize credentials?

已成功公证我的 osx 电子申请,但现在的问题是苹果 ID 和应用程序专用密码在 package.json 中。我当然不想在那里对它们进行硬编码以进行分发,但是我可以使用 .env 文件中的环境变量来替换它们,或者我怎样才能将它们保密在 package.json 文件中?

我查看了 dotenv 和 cross-env,但没有看到如何在 package.json 文件中使用环境变量。

应用是使用 electron forge 构建的。

我使用的结构(取自 electron-forge 文档):

{
  "name": "my-app",
  "version": "0.0.1",
  "config": {
    "forge": {
      "packagerConfig": {
        "osxSign": {
          "identity": "Developer ID Application: Felix Rieseberg (LT94ZKYDCJ)",
          "hardened-runtime": true,
          "entitlements": "entitlements.plist",
          "entitlements-inherit": "entitlements.plist",
          "signature-flags": "library"
        },
        "osxNotarize": {
          "appleId": "felix@felix.fun",
          "appleIdPassword": "my-apple-id-password",
        }
      }
    }
  }
}

提前致谢。

你自己的副本 post :

您应该在单独的 JS 文件中提取 electron forge 配置:ElectronForge 配置并使用 process.env.YOUR_VARIABLE_NAME

加载您的环境变量

package.json

{
    "name": "app",
    "description": "app",
    "productName": "app",
    "version": "0.0.0",
    "private": true,
    "scripts": {
    },
    "config": {
        "forge": "./forge.config.js"
    },
...
}

forge.config.js

module.exports = {
    "packagerConfig": {
        "osxSign": {
          "identity": "Developer ID Application: Felix Rieseberg (LT94ZKYDCJ)",
          "hardened-runtime": true,
          "entitlements": "entitlements.plist",
          "entitlements-inherit": "entitlements.plist",
          "signature-flags": "library"
        },
        "osxNotarize": {
          "appleId": process.env.NOTORIZE_APPLE_ID,
          "appleIdPassword": process.env.NOTORIZE_APPLE_ID,
        }
      }
}