如何使用敏感环境使其适用于 Expo Go

问题描述 投票:0回答:1

我想知道最好的方法是设置敏感的环境变量并仍然使用 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 服务。

reactjs react-native expo expo-go
1个回答
0
投票

我将

react-native-dotenv
EXPO_PUBLIC_*
内置环境管理混合使用,它对我来说非常有效。

首先。我想知道你想存储什么样的数据。如果 app.config.js 的某些配置位于 .env 文件中,您的构建可能无法启动,或者可能以不正确的值启动而没有任何警告。 (有些配置不能动态添加。)

要成功运行 EAS 构建,您必须添加 .easignore 文件并从 .gitignore 复制内容expect 行负责忽略 .env 文件。通常,如果您没有此文件,EAS 会忽略您的所有文件\目录,因此您的 .env 文件将在构建启动时被忽略。 .easignore 比 .gitignore 具有更高的优先级,因此您的环境变量不会被忽略。

由于您的 EAS 构建作业在远程服务器上运行,因此这些 .env 文件可能不可用。例如,如果 .env 文件列在 .gitignore 中或未提交到本地版本控制系统,则它们会从您上传的项目中排除

你需要知道的一切都在(记得检查文章参考文献。):

我也发现这很有帮助:

重要

  1. 存储在环境变量中的所有内容在客户端仍然以纯文本形式可见
  2. EAS Secrets 可能会产生误导,它们没有额外的安全性。

EAS Secret 不会为您最终嵌入应用程序本身的值(例如 AWS 访问密钥或其他私钥)提供任何额外的安全性。

总而言之。对我来说,最好的方法是混合使用

EXPO_PUBLiC_*
react-native-dotenv

© www.soinside.com 2019 - 2024. All rights reserved.