如何让Xcode 14.1仅构建当前选中的Scheme/Target?
解决Xcode 14.1编译所有Target/问题面板被干扰的方案
先给你理清楚Target和Scheme的核心区别,方便后续操作:
- Target:负责定义具体的构建产物(比如APP、框架),包含编译源码、资源、配置规则等核心逻辑
- Scheme:定义一套完整的开发流程(构建、运行、测试、分析等),绑定一个主Target,默认仅构建当前Scheme所需的内容
一、让Xcode仅编译当前选中的Scheme
修改Scheme的构建配置
- 顶部工具栏选中你正在开发的
slim_multiScheme,点击Product > Scheme > Edit Scheme(快捷键⌘ + <) - 切换到
Build标签页:- 取消勾选
Find Implicit Dependencies(这个选项会让Xcode自动构建它判定的关联依赖,但你的Target基于同一源码,完全不需要这个逻辑) - 将Build列表中无关的Target全部移除(选中后点击
-号),仅保留slim_multi
- 取消勾选
- 切换到
Build Configuration标签,确保Run、Test等动作对应的配置都是slim_multi的,避免误关联其他Target
- 顶部工具栏选中你正在开发的
彻底清理旧缓存
- 打开Xcode偏好设置(
⌘ + ,),进入Locations标签页,点击Derived Data旁的Delete按钮,彻底清除旧构建缓存(比Clean Build Folder更彻底) - 进入
Build标签页,取消勾选Parallelize Build,避免Xcode并行编译多个Target拖慢机器
- 打开Xcode偏好设置(
二、让问题面板仅显示当前Target的内容
过滤问题列表
- 左侧问题面板(Issue Navigator)顶部有个漏斗图标,点击后选择
Current Scheme,这样只会显示当前选中Scheme对应的Target的问题 - 还可以进一步选择
Errors Only,直接聚焦错误内容,忽略警告
- 左侧问题面板(Issue Navigator)顶部有个漏斗图标,点击后选择
调整问题排序
- 问题面板顶部的排序下拉菜单中,选择
By Target,然后直接拖拽slim_multi到列表最顶部,Xcode会记住这个排序偏好
- 问题面板顶部的排序下拉菜单中,选择
三、额外排查点
- 检查Target间的依赖关系:打开项目文件,进入
Project > Targets,查看每个Target的Build Phases > Target Dependencies,确保slim_multi没有不必要地依赖其他5个Target,反之亦然 - 检查Scheme共享设置:右键Scheme选择
Manage Schemes,取消无关Scheme的Shared勾选,避免团队配置冲突影响本地开发
内容的提问来源于stack exchange,提问作者bhaller
相关产品推荐
相关产品推荐

