M1芯片Mac升级Monterey12.0.1+Xcode13.1多Target项目卡顿求解决方案
Xcode 13.1 多Target项目性能问题解决方案
单Target索引限制配置
通过以下设置即可让Xcode仅对当前选中的Target执行索引操作,避免全量扫描50+Target导致的性能损耗:
- 打开Xcode偏好设置(快捷键
command + ,),进入Locations标签页,点击Derived Data下方的Advanced按钮,将构建位置设置为Unique,减少跨Target的文件扫描范围 - 选中项目根节点,切换到
Build Settings标签页,搜索Index Per Target选项,将值修改为YES - 同界面搜索
Enable Index-While-Building Functionality,将值设置为NO,关闭构建过程中的全局实时索引 - 搜索
Build Active Architecture Only,Debug模式下设置为YES,仅编译当前设备对应的架构,降低构建开销
额外性能优化配置
- 清理历史缓存:退出Xcode后在终端执行
rm -rf ~/Library/Developer/Xcode/DerivedData/*,删除旧有索引和构建缓存文件 - 限制并发编译任务数:8GB内存的M1设备可在终端执行
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4,避免并发任务过多导致内存溢出卡顿 - 隐藏非活跃Target:在项目Target列表中右键选中暂时不需要开发的Target,勾选
Hide in Scheme,减少Xcode的默认扫描范围 - 优化Scheme构建规则:使用快捷键
command + <打开Scheme设置,进入Build标签页,勾选Parallelize Build和Find Implicit Dependencies,提升单Target构建效率
兼容旧版Xcode应急方案
如果上述配置仍无法满足需求,可通过修改配置文件让Xcode 12.5.1运行在macOS 12.0.1上:
- 右键Xcode 12.5.1应用图标,选择「显示包内容」,进入
Contents文件夹 - 打开
Info.plist文件,找到LSMinimumSystemVersion字段,将取值修改为12.0后保存即可正常启动
内容的提问来源于stack exchange,提问作者Hitarth
相关产品推荐
相关产品推荐

