我正在尝试用electron-forge打包我的电子应用程序,为了让它在mac上可用,我需要对它进行协同设计,这需要在package.json文件中传递appleId和app-specific-password等信息。
如何安全地传递此信息?(即下载应用程序的用户无法使用此信息)
如果要使用环境变量,我希望了解在哪里设置环境变量(在单独的文件中?在start命令中?)以及如何在package.json中访问它们。
如果能帮我解决这个问题我会很感激的。
我考虑的细节:
- 电子伪造codesign documentation没有提到如何以安全的方式提供osx所需的细节,但它提到了它使用电子公证(除其他外)的引擎盖下,电子公证的documentation说:“永远不要将密码硬编码到打包脚本中,至少使用环境变量”,但没有提供如何做到这一点的细节。
- 这个堆栈溢出answer提供了关于设置一个单独的
forge.config.js
文件的有用信息,然后说你应该“使用process.env.YOUR_VARIABLE_NAME加载你的环境变量”。它没有提供更多的细节--加载打包应用的环境变量是我在这里试图弄清楚的。
--这个堆栈溢出answer提到手动设置,但没有提到如何设置,它还提到使用dotenv package--但我很惊讶这个任务需要一个独立的包,而这个包对任何mac electron应用程序来说都是基础。
2条答案
按热度按时间z0qdvdin1#
我将它们存储在项目目录下的
.env
文件中,如下所示:在
package.json
中,我有一个部分:afterSign
指向脚本scripts/notarize.js
,该脚本将使用dotenv
拉出APPLEID
和APPLEIDPASS
:最后两行
appleId
和appleIdPassword
用于提取环境变量。例如,不要将
.env
文件提交到github。将.env
添加到您的.gitignore
文件中。另外:script/notarize.js
应用程序不是应用程序本身的一部分,它在您构建应用程序时运行。rjzwgtxy2#
我已经从一个电子锻造的维护者那里得到了回复,他说这样做的方法是:
$ VAR1=something VAR2=somethingelse npm run make
.process.env.VAR1