ssc*_*lli 5 xcode compilation api-key swift
我在 CI/CD 平台上定义了一个 API 密钥,如下所示:
export API_KEY="XXXXXXXXXX"
有没有办法可以用我的构建以某种方式编译这个变量,这样我就可以在 Swift 中引用它,而不必担心在运行时在二进制环境中定义的变量?ProcessInfo.processInfo.environment很明显我用不了,因为API key只在我的CI/CD环境中定义。我想用密钥编译我的二进制文件,以便在我分发我的应用程序时可以使用密钥。
我的用例是我想避免将 API 密钥放在我的 git 存储库中,而是在生成构建时从 CI/CD 平台获取它。如果有一种方法可以注入一个环境变量,然后将其编译为二进制文件的一部分,那将是理想的。
这将使用以下代码修改占位符:
let apiKey : String = "<# THE_API_KEY #>"
Run Code Online (Sandbox Code Playgroud)
直接在源文件中修改代码
每次构建之前。
如果您在存档预操作中有生产密钥,则可以添加另一个密钥
示例
将apiKey变量放在要访问它的文件中
在Pre-action做一个脚本来替换占位符文本,例如THE_API_KEY
该脚本将如下所示
cat $PROJECT/$PATH_TO_FILE | sed 's/THE_API_KEY/YOUR_KEY' > $PROJECT/$PATH_TO_FILE
Run Code Online (Sandbox Code Playgroud)
不要忘记清理代码以避免将 API 密钥放入您的提交中
与一个Post-action
cat $PROJECT/$PATH_TO_FILE | sed 's/YOUR_KEY/THE_API_KEY' > $PROJECT/$PATH_TO_FILE
Run Code Online (Sandbox Code Playgroud)