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
我在 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