Xcode: 如何编译环境变量并在Swift中引用?

Xcode: how to compile environment variables and refer to them in Swift?

我在 CI/CD 平台上定义了一个 API 密钥,如下所示:

export API_KEY="XXXXXXXXXX"

有没有一种方法可以通过我的构建以某种方式编译此变量,以便我可以在 Swift 中引用它而不必担心运行时在二进制环境中定义的变量?显然我不能使用 ProcessInfo.processInfo.environment,因为 API 键仅在我的 CI/CD 环境中定义。我想用密钥编译我的二进制文件,以便在我分发我的应用程序时可以使用该密钥。

我的用例是我想避免将 API 密钥放入我的 git 存储库中,而是在生成构建时从 CI/CD 平台获取它。如果有一种方法可以注入一个环境变量,然后将其编译为二进制文件的一部分,那就太理想了。

您可以在 Xcode 构建部分中执行预操作脚本

这将使用以下代码修改占位符:

let apiKey : String = "<# THE_API_KEY #>"

Modify the code directly in the source file

每次构建之前。

如果您在存档预操作中有生产密钥,则可以添加另一个

例子

apiKey 变量放在您要访问的文件中

Pre-action 中执行脚本以替换 THE_API_KEY

等占位符文本

脚本将如下所示

 cat $PROJECT/$PATH_TO_FILE | sed 's/THE_API_KEY/YOUR_KEY' > $PROJECT/$PATH_TO_FILE

Don't forget to clean the code to avoid put the API key in you commit

有了Post-action

cat $PROJECT/$PATH_TO_FILE | sed 's/YOUR_KEY/THE_API_KEY' > $PROJECT/$PATH_TO_FILE