You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xcode Cloud构建时将环境变量传入Xcode项目?

在Xcode Cloud构建中注入环境变量并在App中使用

问题核心

本地开发时,Scheme设置的环境变量是运行时传给App进程的,所以ProcessInfo.processInfo.environment["API_KEY"]能直接读到。但Xcode Cloud构建的是归档包,App运行时无法直接访问构建服务器的环境变量——你需要在构建阶段把变量注入到App的可访问位置(比如Info.plist或者编译成代码常量)。

具体实现步骤

1. 确保Xcode Cloud工作流的环境变量可用于构建

在工作流编辑界面的环境变量设置中,给你的API_KEY勾选**"Available during build"**,这样变量会被传入构建阶段的进程环境。

2. 方法一:将环境变量注入Info.plist

这是最常用的方式,把环境变量写入Info.plist,App运行时可以通过Bundle读取:

  • 打开项目的Info.plist,添加新键值对:键设为API_KEY,值设为$(API_KEY)(构建时会自动替换为环境变量的实际值)
  • 代码中读取示例:
    if let apiKey = Bundle.main.object(forInfoDictionaryKey: "API_KEY") as? String {
        // 在这里使用apiKey
    }
    

3. 方法二:编译时代码注入常量

如果不想把变量暴露在Info.plist中,可以通过预编译宏把环境变量编译成代码常量:

  • 进入项目的Build Settings,搜索**"Preprocessor Macros"**
  • 在Cloud使用的构建配置(比如Release)中,添加API_KEY=@\"$(API_KEY)\"
  • 代码中直接使用:
    let apiKey = API_KEY
    // 在这里使用apiKey
    
    注意:如果变量包含特殊字符(比如双引号),需要额外转义,这种方式更适合纯字符串类的密钥。

4. 验证构建是否生效

提交代码触发Xcode Cloud构建后,在构建日志中搜索API_KEY,查看构建步骤中是否完成了变量替换:

  • 比如Info.plist编译环节会显示替换后的键值,预编译宏环节会输出常量内容。

常见坑点

  • 环境变量名大小写敏感,确保工作流设置的名称和代码/配置里的完全一致
  • 必须勾选"Available during build",否则构建进程无法读取到变量
  • 使用预编译宏时,变量值里的双引号要转义,比如变量值是abc"123,需要写成API_KEY=@\"abc\\\"123\"

内容的提问来源于stack exchange,提问作者jamryu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:43:12