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

如何在Run Script构建阶段获取当前运行的Xcode Scheme名称?

解决方案:构建时自动获取Scheme名称(无需硬编码)

以下是几种适配CLI构建流程、无需硬编码Scheme名称的可行方案:

方案1:CLI调用时直接注入环境变量(最简方案)

在通过CLI执行xcodebuild命令时,将Scheme名称作为环境变量传入,Run Script构建阶段可直接读取该变量:

  1. 执行xcodebuild时注入环境变量:
# SCHEME_NAME可通过CLI参数动态传入,替换为实际值
SCHEME_NAME="YourAppScheme" xcodebuild -scheme "$SCHEME_NAME" -workspace YourWorkspace.xcworkspace -configuration Debug build
  1. 在Run Script中使用变量:
# 直接读取注入的环境变量
echo "当前运行的Scheme: ${SCHEME_NAME}"
# 后续业务逻辑基于该变量处理即可

方案2:通过Xcodeproj添加用户定义构建设置

如果需要在项目配置层面固化传递逻辑,可使用Xcodeproj为目标添加用户定义的构建设置,CLI调用时传入对应值:

  1. 用Xcodeproj脚本添加用户定义设置:
project = Xcodeproj::Project.open('YourProject.xcodeproj')
# 替换为你的目标名称
target = project.targets.find { |t| t.name == 'YourAppTarget' }

# 给所有构建配置添加CURRENT_SCHEME设置
target.build_configurations.each do |config|
  config.build_settings['CURRENT_SCHEME'] = '$(inherited)'
end

project.save
  1. CLI调用xcodebuild时传入该设置的值:
xcodebuild -scheme "YourAppScheme" -workspace YourWorkspace.xcworkspace -configuration Debug CURRENT_SCHEME="YourAppScheme" build
  1. Run Script中读取变量:
echo "当前Scheme: ${CURRENT_SCHEME}"

方案3:临时文件传递Scheme名称

若不想修改项目配置或环境变量,可在CLI构建前将Scheme名写入临时文件,Run Script读取后清理:

  1. CLI构建前写入临时文件:
# 动态获取Scheme名并写入临时文件
echo "$TARGET_SCHEME" > /tmp/current_xcode_scheme.txt
# 执行构建命令
xcodebuild -scheme "$TARGET_SCHEME" -workspace YourWorkspace.xcworkspace build
  1. Run Script中读取并清理:
CURRENT_SCHEME=$(cat /tmp/current_xcode_scheme.txt)
echo "当前Scheme: ${CURRENT_SCHEME}"
# 清理临时文件避免残留
rm /tmp/current_xcode_scheme.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:05:19