ChatGPT解决这个技术问题 Extra ChatGPT

可以删除 macOS Xcode CoreSimulator 设备文件夹吗?

我的 ~/Library/Developer/CoreSimulator/Devices 文件夹是 26 GB。

删除所有内容是否安全?这些文件会自动重新生成吗?


C
Community

尝试在您的终端中运行 xcrun simctl delete unavailable

原始答案:Xcode - free to clear devices folder?


M
MacMark

该目录是您的用户数据的一部分,您可以删除任何用户数据而不会严重影响 Xcode。您可以删除整个 CoreSimulator/ 目录。当您进行下一次模拟器运行时,Xcode 将在那里为您重新创建新实例。如果您可以承受丢失任何以前的应用程序模拟器数据,这是获得空间的简单方法。

更新:一个相关的有用应用是“DevCleaner for Xcode”https://apps.apple.com/app/devcleaner-for-xcode/id1388020431


注意事项:仅当您使用 xCode IDE 时才会重新创建新实例。如果您尝试在使用 xcodebuild 脚本、fastlane 或其他方式构建和运行测试的 CI 服务器上释放空间,最好避免使用此方法。
DevCleaner 清理了我的 Library/Developer/Xcode 文件夹,但没有清理 CoreSimulator。知道为什么吗?
@Roberto,也许这样您仍然可以在模拟器上运行您的应用程序。我做了 rm ~/Library/Developer/CoreSimulator/*,打开 Xcode,然后尝试在模拟器上运行我的应用程序。我收到一个错误:“无法启动设备,因为它无法位于磁盘上。域:NSPOSIXErrorDomain 代码:2 失败原因:设备的数据不再存在于 ~/Library/Developer/CoreSimulator/Devices/B2EFB6F6-6A64-4521 -83A4-94EA45420073/data. 恢复建议:使用 Xcode 中的设备管理器或 simctl 命令行工具正确删除设备或擦除内容和设置。
A
AlexanderN

对于发现可用存储空间非常少但不知道原因的 iOS 开发人员:

检查您下载了多少个模拟器,因为它们占用了大量空间(更新 XCode 时不会删除以前的模拟器,所以这会很快加起来):

转到: ~/Library/Developer/Xcode/iOS DeviceSupport

同时删除对您不再重要的旧存档应用程序:

转到: ~/Library/Developer/Xcode/Archives

我这样做清除了 100GB。

更新:您现在只需转到左上角的 Apple 图标 -> 关于此 Mac -> 存储 -> 管理... -> 开发人员即可轻松完成此操作


当心。您可能希望保留已发布版本的存档。 Technical Note TN2151: Understanding and Analyzing Application Crash Reports: Symbolicating Crash Reports 说:“重要提示:为了象征来自测试人员、应用审查和客户的崩溃报告,您必须为您分发的每个应用版本保留存档。”
是的,我将相关档案(尤其是产品版本)存储在硬盘上,以备日后需要使用
w
whyoz

对于 Xcode 8:

我所做的是在终端中运行 sudo du -khd 1 以以简单文本形式查看每个文件夹的文件系统存储量,然后使用 cd 命令向上/向下钻取到隐藏巨大 GB 的位置。

最终,您将找到 Users//Library/Developer/CoreSimulator/Devices 文件夹,您不必担心使用不再需要的 iOS 版本删除所有这些“设备”。将它们全部删除也是安全的,但请记住,您将丢失写入设备的数据,例如您可能希望用作备份版本的 sqlite 文件。

因为我在旧 iOS 版本上做了很多测试,所以我曾经节省了超过 50GB。


GrandPerspective 是一个很好的工具,可以更清晰地找到正在使用的空间。比 du 快。 (grandperspectiv.sourceforge.net)。
我建议使用 ncdu(也可通过 Homebrew 和 MacPorts 获得)而不是一遍又一遍地运行 du。它在终端中为您提供了一个交互式向下钻取界面,还可以让您删除文件夹等。
D
Den

您还可以删除 ~/Library/Developer/CoreSimulator/Caches/dyld/ 目录并释放大量内存。


m
mojuba

除了 xcrun simctl delete unavailable,您还可以一次清理所有模拟的操作系统数据和应用程序:

 xcrun simctl erase all

也就是说,如果您不需要模拟器上的数据和安装的应用程序。您很可能不会 - Xcode 将在您下次在其中一个模拟器中运行时安装操作系统和您的应用程序。

这可能会释放更多 GB 的磁盘空间。

(如果 xcrunsimctl 找不到:确保在 Xcode Preferences -> Locations -> Command Line Tools 中正确指定了开发工具的位置)


l
lajosdeme

我创建了一个小型命令行实用程序,用于清理 CoreSimulator 文件夹和其他一些可能占用额外空间的 Xcode 相关文件夹,在 this 答案中指定。如果您认为这对您有帮助,you can check it out here.


尽管这可能是一个很好的解决方案,但我对安装语言 (Go) 和具有大量依赖项的整个 brew 包的要求投了反对票。事情应该保持简单,您可以在 bash/zsh 中编写它以使其对每个人都更有用。