我想知道最好的方法是设置敏感的环境变量并仍然使用 Expo Go 来开发我的应用程序。因为喜欢用App里的工具来调试我的代码。
第一种也是最简单的方法是添加前缀
EXPO_PUBLIC_X
,但这只能以纯文本形式保护环境变量,所以这对我来说不是选择。
其次,我发现了一个叫做
react-native-dotenv
的东西,但这完全破坏了你的构建。要解决此问题,您必须删除此软件包以及名为 babel-plugin-transform-inline-environment-variables
的内容,并删除 package-lock.json
并使用命令 npm start --clear
最后我发现了世博会的秘密。但我不知道如何将它们集成到我的代码中,也不知道在构建 Expo Go 时是否可以使用这些秘密,而不是使用称为 EAS 的 Expos 服务。
我将
react-native-dotenv
与 EXPO_PUBLIC_*
内置环境管理混合使用,它对我来说非常有效。
首先。我想知道你想存储什么样的数据。如果 app.config.js 的某些配置位于 .env 文件中,您的构建可能无法启动,或者可能以不正确的值启动而没有任何警告。 (有些配置不能动态添加。)
要成功运行 EAS 构建,您必须添加 .easignore 文件并从 .gitignore 复制内容expect 行负责忽略 .env 文件。通常,如果您没有此文件,EAS 会忽略您的所有文件\目录,因此您的 .env 文件将在构建启动时被忽略。 .easignore 比 .gitignore 具有更高的优先级,因此您的环境变量不会被忽略。
由于您的 EAS 构建作业在远程服务器上运行,因此这些 .env 文件可能不可用。例如,如果 .env 文件列在 .gitignore 中或未提交到本地版本控制系统,则它们会从您上传的项目中排除
你需要知道的一切都在(记得检查文章参考文献。):
我也发现这很有帮助:
重要
EAS Secret 不会为您最终嵌入应用程序本身的值(例如 AWS 访问密钥或其他私钥)提供任何额外的安全性。
总而言之。对我来说,最好的方法是混合使用
EXPO_PUBLiC_*
和 react-native-dotenv
。