Xcode 模拟器占空间怎么删?安全移除 Simulator Runtime

先确认哪些 iOS、watchOS、tvOS 或 visionOS Simulator Runtime 已不再使用,再从 Xcode Components 按版本删除,并用磁盘可用空间核验结果。

先看结论:删 Runtime,不删 AssetsV2

Xcode 的 Simulator Runtime 是某个平台与系统版本的模拟运行环境,例如 iOS、watchOS、tvOS 或 visionOS Runtime。它通常比单个模拟设备占用更大;删除一个 Runtime 会让依赖该版本的模拟设备无法继续运行,之后若再次需要就要重新下载。

Apple 提供的主要管理入口是 Xcode → Settings → Components。这里会列出已安装组件,并显示移除后可回收的空间。不要把 /System/Library/AssetsV2 当作普通下载目录手动清空:其中还可能有软件更新、语音、字体和其他 macOS 管理的资产。

先辨认对象,才能知道删除会影响什么。
对象作用建议
Simulator Runtime提供一个平台与系统版本的模拟环境确认不用后从 Components 按版本删除
模拟设备在某个 Runtime 上保存具体设备状态只删设备不会移除整个 Runtime
DerivedData项目构建中间产物与 Runtime 分开判断
AssetsV2 顶层目录macOS 管理多种系统资产不要整体手删

第一步:记录现状和仍需测试的系统版本

打开苹果菜单 → 系统设置 → 通用 → 储存空间,记录当前可用容量。再列出正在维护的项目、最低部署版本、客户仍在使用的系统版本,以及团队或持续集成是否依赖本机 Runtime。

不要只按“版本旧”决定删除。一个旧 Runtime 可能仍用于复现线上问题;一个较新的 visionOS Runtime 如果从未使用,反而可能更适合移除。若无法确认项目要求,先保留并询问项目负责人。

  1. 记录 df -h / 的 Available 数值。
  2. 打开项目的部署目标与测试计划,列出仍需覆盖的系统版本。
  3. 退出正在运行的 Simulator 和调试会话。
  4. 在 Xcode → Settings → Components 记录已安装 Runtime 与界面显示的可回收空间。

第二步:在 Xcode Components 中删除

在 Xcode 中选择 Xcode → Settings,然后打开 Components。Apple 将 Simulator Runtime 列在 Other Installed Platforms;点击目标组件旁的信息按钮,在确认版本与影响后选择 Delete。不同 Xcode 版本的文字与布局可能略有变化,但都应从组件管理入口识别目标。

一次只处理一个明确的 Runtime。删除期间不要退出 Xcode、强制结束 CoreSimulator 进程或同时手动移动相关目录。若按钮不可用或组件状态正在变化,先等待当前安装或删除完成。

  1. 找到 Other Installed Platforms。
  2. 核对平台、系统版本与预计回收空间。
  3. 确认当前项目不再需要该版本。
  4. 点击信息按钮并选择 Delete。
  5. 等待组件状态更新,再处理下一个版本。

需要终端时,先只读列出 Runtime

终端适合核对 Xcode 已登记的 Runtime,而不是绕过组件管理。先运行 xcrun simctl runtime list -v,记录平台、版本、build、UUID、状态与最后使用时间。若 xcrun 或 simctl 不存在,不要为了删文件临时安装整套 Xcode;回到系统储存空间和实际应用入口继续判断。

只有你已经确认单一 Runtime 的 UUID、理解它会影响哪些模拟设备,并且 Components 无法完成同一操作时,才考虑 xcrun simctl runtime delete RUNTIME-UUID。RUNTIME-UUID 是占位符,不能原样复制;不要使用 all,也不要直接递归删除 Runtime 的磁盘路径。

  1. xcrun simctl runtime list -v
  2. 复制并再次核对目标 Runtime 的完整 UUID。
  3. 关闭使用该 Runtime 的 Simulator 与调试任务。
  4. 只对确认的 UUID 执行删除,不使用通配符或批量目标。

删除后怎么证明空间真的回来了

命令返回成功或组件从列表消失,只能证明删除流程已执行,不能单独证明磁盘已经回收预期容量。重新打开 Components,确认目标不再显示为已安装;再运行 runtime list 和 df,与操作前的记录比较。

macOS 的“系统数据”分类可能延迟重新计算,因此应把文件系统可用空间作为主要结果,把储存分类变化作为辅助观察。如果状态仍显示删除中,先等待;不要重复提交或手动杀进程。

  1. 重新运行 xcrun simctl runtime list -v。
  2. 运行 df -h /,比较 Available 数值。
  3. 在 Xcode 中启动一个保留的 Simulator,确认现有项目仍可运行。
  4. 记录删除的具体版本与实测释放量,而不是引用界面的预计值。

删错了怎么恢复,以及怎样避免反复下载

如果项目后来需要被删除的版本,可回到 Components,使用 Add Platforms 或相应的 Get 按钮重新下载。Apple 也支持用 xcodebuild 下载与导入平台组件,但普通单机使用优先采用图形界面,减少选错架构或 Xcode 版本的风险。

不要为了每次腾空间都删除近期仍会使用的 Runtime。更稳妥的策略是保留当前开发版本、最低支持版本和一个用于复现问题的关键版本,其余版本按项目结束时间定期复核。Apple silicon 机器默认下载适合本机架构的较小变体时,也不要无理由改为 universal 变体。

核验来源

内容说明

本文由 iPunk 编辑流程辅助整理,并按可复现性、风险和实际成本进行人工复核。工具与政策会变化,请以产品当前页面为准。