【问题标题】:Can I use environment variables in electron package.json for osx notarize credentials?我可以在电子 package.json 中使用环境变量来获取 osx 公证凭证吗?
【发布时间】:2021-08-07 08:05:20
【问题描述】:

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

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

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

我使用的结构(取自 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",
        }
      }
    }
  }
}

提前致谢。

【问题讨论】:

    标签: code-signing electron-packager electron-forge electron-notarize


    【解决方案1】:

    复制您自己的帖子:Where can I find electron forge config js file where package.json is parsed?

    您应该将电子锻造配置提取到一个单独的 JS 文件中: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,
            }
          }
    }
    
    
    

    【讨论】:

    • 感谢您的回答。这很有帮助。你能说一下如何“使用 process.env.YOUR_VARIABLE_NAME 加载你的环境变量”吗?我没有找到太多的指导。我们在哪里写出 process.env.Variable-Name,然后我们在哪里写出 appleId 和 appleIdPassword 之类的实际变量名?
    猜你喜欢
    • 2012-01-22
    • 2016-01-03
    • 2018-12-17
    • 2020-06-24
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 2022-12-17
    • 2020-12-21
    相关资源
    最近更新 更多