Xcode - 免费清除设备文件夹?

Posted

技术标签:

【中文标题】Xcode - 免费清除设备文件夹?【英文标题】:Xcode - free to clear devices folder? 【发布时间】:2016-04-26 21:49:21 【问题描述】:

我正在删除一些文件夹和文件,以便在我的驱动器上腾出更多空间。我知道在路径中:

~/Library/Developer/CoreSimulator/Devices/

每个模拟器和每个版本都有文件夹。这个文件夹对我来说大约有 11GB 大小。我知道我可以删除不再使用的旧版本的模拟器。但是从那个唯一的标识符中,我不知道哪个是正确的,哪个不是。所以我的问题是:我可以全部删除吗?如果下次我在模拟器中没有我的任何应用程序也没关系,但我可以失去更多东西吗?旧版本的模拟器?还是别的什么?谢谢

【问题讨论】:

【参考方案1】:

有时 Xcode 喜欢在其模拟器上加倍。

通常对我来说,解决方法就是将它们全部删除。 删除它们是无害的,因为您以后可以随时再次下载它们。

Xcode > 首选项 > 下载

请记住,如果您有任何旧模拟器(ios 8.0-),您将无法通过 Xcode 再次下载它们。

【讨论】:

【参考方案2】:

不久前我遇到了类似的问题,xcode 在我的驱动器上占用了 47G。我尝试删除一些阻止我的 xcode 工作的模拟器设备(疯狂)。所以我删除了与 xcode 相关的所有内容并重新安装。这只是我的经验。

【讨论】:

【参考方案3】:

~/Library/Developer/CoreSimulator/Devices/ 路径是 Xcode 存储您的单个模拟器设备所需的大部分数据的位置。

Beau Nouvelle 关于删除下载的模拟器版本的建议不会改变这些文件夹的大小,因为运行时存储在其他地方。

如果你去终端,你可以使用 simctl 工具(Xcode 6+ 附带)列出你拥有的所有实际模拟器设备,以及 id,以便你计算列出要删除的文件夹。

注意,你会看到我在这个答案中经常使用 xcrun simctl。通过让 xcrun 为您当前选择的 Xcode 查找适当版本的 simctl,这增加了一些抽象。根据您的系统,您可能会通过删除“xcrun”部分来解决问题,命令行仍应找到 simctl 工具。

xcrun simctl list devices

以下是我收到的输出的一些选定的 sn-ps:

== 设备 ==

-- iOS 8.2--

-- iOS 8.4--

iPhone 6 Plus (23E36868-715A-48C8-ACC3-A735C1C83383)(关机)

iPad Air (2928379B-70E3-4C59-B5BA-66187DDD3516)(关机)

-- iOS 9.1--

我的定制 iPhone 4s (4F27F577-FFD0-42C1-8680-86BBA7394271) (关机)

iPad 视网膜 (85717B35-313A-4161-850E-D99D5C8194A6)(关机)

-- 不可用:com.apple.CoreSimulator.SimRuntime.iOS-9-0 --

iPhone 4s (D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3) (关机) (不可用,未找到运行时配置文件)

从中可以看出我没有 iOS 8.2 模拟器设备。我有一些 9.1 和 8.4 模拟器设备。我确实有一个 9.0 模拟器设备(我在 Xcode 7.0 上的工作的残余),但我没有 9.0 模拟器运行时本身。所以这是一个很好的删除候选者,或者提醒我应该去下载 Xcode 中的 9.0 模拟器。

如果需要,您可以使用这些 ID 来识别相关设备的文件夹并手动删除(在这种情况下,我将删除“D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3”文件夹),但您可以也可以使用 simctl 工具来做到这一点。

按照simctl 7.1.1版本使用:

xcrun simctl help delete
Usage: simctl delete <device> [... <device n>] | unavailable

所以我可以删除单个设备:

xcrun simctl delete D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3

或者我可以批量删除所有不可用的:

xcrun simctl delete unavailable

也没有必要将自己仅限于不可用的模拟器。

如果您需要有关该工具的任何进一步帮助,它带有一个相当直接的帮助命令:

xcrun simctl help

--

Xcode 的较新版本降低了上述步骤的效率。我肯定只知道 Xcode 13.1。虽然删除模拟器仍会清理~/Library/Developer/CoreSimulator/Devices/ 文件夹中的空间,但有时这并没有帮助,因为文件刚刚移动到某个名为Deleting-&lt;guid&gt; 的文件夹中的/var/folders 下,占用的空间与原来的设备做到了。但是这个位置需要 root 权限来清理或重新启动,这两者都不是可取的。 从同事的一些测试来看,如果你先删除设备文件夹,然后通过xcrun simctl delete删除设备,这似乎不是问题。

【讨论】:

如果遇到错误xcrun: error: unable to find utility "simctl",应该可以使用,xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl Xcrun 应该可以帮助您找到实用程序,这样您就不需要自己知道它们的路径。但是,如果您已经知道 simctl 的路径,则不需要“xcrun”。直接运行/Applications/Xcode.app/Contents/Developer/usr/bin/simctl 我在运行 simctl delete unavailable 后回收了大约 10 Gb,修剪了许多 iOS 版本的设备。我不知道这些还在那里。赢了! 酷,还有一个问题,我们怎么知道哪个可用,哪个不可用?我已经用xcrun simctl delete unavailable删除了那些unavailable one,但是文件夹还是太大了.. 如果你有 Xcode-beta,simctl 会将 Xcode 的设备描述为不可用,反之亦然,所以如果你有两个你不应该做空白delete unavailable【参考方案4】:

在 Xcode 8 中:

    在终端运行$ sudo du -khd 1查看每个文件夹的文件夹大小;

    运行 $ cd library/developer/coresimulator/devices 以查看为所有 Xcode 模拟器存储的 GB;

    您将开始看到大量存储空间隐藏在哪里!现在只需导航到 Macintosh HD 上的该位置并查看每个设备文件夹中的 devices.plist

    通过删除您过去运行但不再需要测试的任何模拟器/iOS 版本来决定要删除和保留哪些文件夹。可以充当旧备份的旧 sqlite 版本,或这些文件夹中存在其他内容,因此在删除此文件夹中的所有内容之前请考虑这一点。

我第一次这样做时节省了超过 50GB。

【讨论】:

以上是关于Xcode - 免费清除设备文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

已达到免费开发配置文件的最大应用数量。 Xcode 11.5

升级到MacOS Catalina 10.15后尝试从Xcode 11.1部署到设备时,FIPS出现两个错误

无法从配置文件中删除设备

清理mac的硬盘空间,清理Xcode,清除“其他”

在 Xcode 7 中清除所有 XIB / Storyboard 文件中所有警告的最快方法是啥

Mac Xcode 清理历史缓存方法(收藏噢)