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-<guid>
的文件夹中的/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出现两个错误