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

Tuist命令行构建默认Scheme配置问题及Fastlane构建失败排查

解决Tuist命令行构建默认Scheme配置问题

Tuist默认Scheme的选择逻辑

  • Tuist会把Project.swift/Workspace.swift的schemes数组里第一个定义的Scheme设为命令行构建的默认选项;
  • 如果是workspace结构,优先选第一个包含可执行目标(App、Framework这类)的Scheme;
  • 要是存在和项目/工作区同名的Scheme,Tuist会直接把它设为默认。

手动指定命令行默认Scheme的两种方式

1. 在项目配置里固定默认Scheme

直接在Project.swift或Workspace.swift中添加defaultScheme参数,指定你需要的Scheme:

// Project.swift 示例
let project = Project(
    name: "YourApp",
    targets: [/* 你的目标列表 */],
    schemes: [
        Scheme(name: "Dev"),
        Scheme(name: "Prod")
    ],
    defaultScheme: "Dev" // 这里设置命令行默认Scheme
)
// Workspace.swift 示例
let workspace = Workspace(
    name: "YourWorkspace",
    projects: [/* 关联的项目路径 */],
    defaultScheme: "Prod"
)

执行tuist generate重新生成项目后,Xcode里的「Use {scheme} for command-line builds」就会自动改成你指定的Scheme,不用手动调整。

2. 构建时临时指定Scheme

如果不想修改项目默认配置,每次构建时直接通过命令行参数指定Scheme:

tuist build --scheme Dev

结合fastlane的话,只要在构建动作里明确指定Scheme,同时确保tuist构建时也带上Scheme参数就行。

适配Fastlane的实操建议

在Fastfile里直接绑定Scheme,避免Tuist默认Scheme干扰:

lane :build_dev do
  # 可选:生成项目时直接指定默认Scheme,和fastlane保持一致
  sh("tuist generate --default-scheme Dev")
  # 构建时强制指定Scheme,彻底避免默认值问题
  gym(
    scheme: "Dev",
    workspace: "YourWorkspace.xcworkspace",
    # 其他构建参数
  )
end

要是临时需要修改默认Scheme,也可以用xcodebuild命令直接设置:

xcodebuild -workspace YourWorkspace.xcworkspace -scheme Dev -setActiveScheme

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:43:28