0

成功公证了我的 osx 电子申请,但现在的问题是 apple id 和 app 特定密码在 package.json 中。我当然不想在那里对它们进行硬编码以进行分发,但是我可以使用 .env 文件中的环境变量来替换它们,或者如何在 package.json 文件中保密?

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

应用程序是使用电子锻造构建的。

我使用的结构(取自电子锻造文档):

{
  "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",
        }
      }
    }
  }
}

提前致谢。

4

1 回答 1

3

您自己的帖子的副本:我在哪里可以找到解析 package.json 的电子锻造配置 js 文件?

您应该在一个单独的 JS 文件中提取电子锻造配置:ElectronForge configuration and load your environment variables usingprocess.env.YOUR_VARIABLE_NAME

包.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,
        }
      }
}


于 2021-05-18T17:37:42.603 回答