如何在Xcode归档及Xcode Cloud CI/CD中配置不同API端点(无需改常量文件)
解决方案:Xcode及Xcode Cloud中无修改切换API端点
下面是几种不用改常量文件就能切换.app、.cloud、.com三个API端点的方案,适配本地归档和Xcode Cloud CI/CD流程:
方法1:Xcode配置+Info.plist占位符
- 给项目新增三个自定义配置:比如
Release-App、Release-Cloud、Release-Com,分别对应三个端点环境 - 打开Info.plist,添加
APIEndpoint字段,值填$(API_ENDPOINT) - 进入项目Build Settings,搜索
Preprocessor Macros,给每个配置设置对应宏:Release-App:API_ENDPOINT=@"https://api.example.app"Release-Cloud:API_ENDPOINT=@"https://api.example.cloud"Release-Com:API_ENDPOINT=@"https://api.example.com"
- 代码中直接读取Info.plist字段或使用宏:
// 读取Info.plist方式 let apiEndpoint = Bundle.main.infoDictionary?["APIEndpoint"] as! String // 或直接用宏 // let apiEndpoint = API_ENDPOINT - Xcode Cloud工作流选择对应配置构建,本地归档时也选对应配置,全程无需修改代码。
方法2:Xcode Cloud环境变量+构建脚本
- 在Xcode Cloud工作流设置中,添加环境变量
API_ENDPOINT,不同工作流设置不同的端点值 - 给项目新增Run Script构建阶段,脚本内容如下:
PLIST_PATH="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" /usr/libexec/PlistBuddy -c "Set :APIEndpoint $API_ENDPOINT" "$PLIST_PATH" - 代码中读取Info.plist的
APIEndpoint字段即可。Xcode Cloud运行不同工作流时,环境变量会自动替换端点,本地归档也可手动设置环境变量切换。
方法3:多Scheme绑定不同配置
- 创建三个Scheme:
AppEndpoint、CloudEndpoint、ComEndpoint,每个Scheme对应一个Build Configuration(比如AppEndpoint绑定Release-App) - 每个配置的Preprocessor Macros设置对应端点宏,代码中直接使用宏定义的端点
- Xcode Cloud选择对应Scheme构建,本地归档时选对应Scheme即可,无需改动常量文件。
内容的提问来源于stack exchange,提问作者Navdeep Rana
相关产品推荐
相关产品推荐

