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

如何让SwiftUI Preview仅构建主目标 不编译测试目标

原因分析

SwiftUI预览触发测试目标构建是Xcode的默认机制导致的,和正常Run项目的构建逻辑存在差异:

  • 正常Run项目时,Xcode只会构建当前scheme中Run阶段配置的目标以及显式声明的依赖,测试目标默认仅在Test动作下才会被构建
  • SwiftUI预览为了保证预览内容能适配所有可能的关联逻辑,默认会启用隐式依赖检索,只要测试目标依赖了你正在预览的业务模块,哪怕没有显式加入Run构建列表,也会被自动纳入预览的构建范围,一旦测试目标存在编译错误就会直接导致预览失败
可行解决方法

调整Scheme构建配置(最常用)

  1. 点击Xcode顶部导航栏的Scheme下拉框,选择Edit Scheme
  2. 选中左侧栏的Build选项
  3. 在右侧的目标列表中,找到所有测试目标,取消Run列的勾选状态(测试目标默认仅需要勾选Test列即可)
  4. 取消页面底部Find Implicit Dependencies的勾选,关闭Xcode自动检索隐式依赖的逻辑,避免测试目标被自动拉入构建流程

修改测试目标依赖

如果测试目标不需要依赖当前预览的模块,可以打开测试目标的Build Phases设置,在Target Dependencies中移除对应业务模块的依赖项,Xcode就不会在预览该模块时触发测试目标构建。

临时禁用测试目标

如果测试目标暂时不需要使用且错误短期内不会修复,可以直接在项目导航栏选中测试目标,在右侧的Target Membership中取消对应scheme的勾选,完全将测试目标从当前scheme的构建范围中移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:27:03