如何使用 Xcode 从 .env 文件中读取环境变量?

How to read environment variable from .env file using Xcode?

提问人:iamDheeraj 提问时间:5/10/2023 最后编辑:AlexanderiamDheeraj 更新时间:5/10/2023 访问量:1566

问:

为了保持 api 密钥的机密性,而不是在代码中对它们进行硬编码,我创建了 .env 文件,我在其中设置了如下所示的密钥值。现在我想在构建时注入此值。

1 文件.env

API_KEY="2131224" 

2 我还添加了以下运行脚本

#!/usr/bin/env bash

# Show env vars
grep -v '^#' .env

# Export env vars
export $(grep -v '^#' .env | xargs)

3 在编译期间,我能够看到 in 日志,但我不知道如何在 api 调用期间将其分配给 var。API_KEY

enter image description here

我尝试使用ProcessInfo访问值,但它不起作用。

ProcessInfo.processInfo.environment["API_KEY"]

知道我该如何访问它吗?

iOS Swift Xcode Bash 安全性

评论

1赞 Alexander 5/10/2023
这被标记了,但您无法控制设备上运行的 iOS 应用程序的环境变量iOS
0赞 iamDheeraj 5/13/2023
感谢 Alexander 编辑问题并使其更具可读性,我正在探索其他事情以保持 api 密钥的隐藏和机密性。
0赞 Alexander 5/13/2023
真正保密 API 密钥的唯一方法是拥有一个代表客户端调用 API 的后端服务。想一想:如果您的最终用户必须查询 API,那么他们需要 API 密钥这与他们没有钥匙的目标完全相反。

答:

0赞 lorem ipsum 5/10/2023 #1

您可以通过以下方式为 Xcode 设置环境变量

Product > Scheme > Edit Scheme > Run > Arguments > Environment Variables

enter image description here

但这不会影响您的生产应用程序,它们不会在您存档时包含在内,它们仅在您通过 Xcode 运行应用程序时包含在内。

它们保留在 Xcode/project 中,因此对任何有权访问您的项目的人都可以看到。

生产应用程序不应包含它们所属的 API 密钥 服务器端的某处和内部,例如“机密管理器”

https://cloud.google.com/secret-manager

评论

0赞 iamDheeraj 5/13/2023
感谢您的建议,我将探索谷歌秘密管理器。