Xcode - 可以免费清除设备文件夹吗?
Xcode - free to clear devices folder?
我正在删除一些文件夹和文件,以便在我的驱动器上创建更多 space。我知道在路径中:
~/Library/Developer/CoreSimulator/Devices/
每个模拟器和每个版本都有文件夹。这个文件夹对我来说大约有 11GB 大小。我知道我可以删除不再使用的旧版本模拟器。但是从那个唯一标识符我无法知道哪个是正确的,哪个不是。所以我的问题是:我可以全部删除吗?如果下次我不会在模拟器中安装任何应用程序也没关系,但我可以再放一些东西吗?旧版模拟器?或者别的什么?谢谢
有时 Xcode 喜欢加倍使用其模拟器。
通常对我来说,解决方法一直是将它们全部删除。
删除它们是无害的,因为您以后可以随时重新下载它们。
Xcode > Preferences > Downloads
请记住,如果您那里有任何旧模拟器 (iOS 8.0-),您将无法通过 Xcode.
再次下载它们
更新!
您现在可以通过存储管理器在最新的 macOS 上管理 Xcode 台设备。
About This Mac > Storage > Manage > Developer
我前一段时间遇到过类似的问题,xcode 在我的驱动器上占用了 47G。我尝试删除一些模拟器设备,这些设备使我的 xcode 停止工作(疯狂)。所以我删除了与 xcode 相关的所有内容并重新安装。这只是我的经验。
~/Library/Developer/CoreSimulator/Devices/
路径是 Xcode 存储您的各个模拟器设备所需的大部分数据的地方。
Beau Nouvelle 关于删除下载的模拟器版本的建议不会改变这些文件夹的大小,因为运行时存储在别处。
如果你去终端,你可以使用 simctl 工具(Xcode 6+ 附带)列出你拥有的所有实际模拟器设备,连同 ID,以便您可以找出要删除的文件夹。
请注意,您会看到我在这个答案中经常使用 xcrun simctl。通过让 xcrun 为您当前选择的 Xcode 查找合适的 simctl 版本,这为事情增加了一点抽象。根据您的系统,您可能会删除“xcrun”部分,命令行仍然可以找到 simctl 工具。
xcrun simctl list devices
以下是我收到的输出的一些精选片段:
== Devices ==
-- iOS 8.2 --
-- iOS 8.4 --
iPhone 6 Plus (23E36868-715A-48C8-ACC3-A735C1C83383) (Shutdown)
iPad Air (2928379B-70E3-4C59-B5BA-66187DDD3516) (Shutdown)
-- iOS 9.1 --
My Custom iPhone 4s (4F27F577-FFD0-42C1-8680-86BBA7394271)
(Shutdown)
iPad Retina (85717B35-313A-4161-850E-D99D5C8194A6) (Shutdown)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-9-0 --
iPhone 4s (D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3) (Shutdown)
(unavailable, runtime profile not found)
由此可见,我没有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/
文件夹中的 space,但有时这无济于事,因为文件刚刚移到 /var/folders
下的某个名为 [=18= 的文件夹中],它占用的空间与原始设备一样大 space。但是这个位置需要 root 权限来清理或重新启动,这两者都是不可取的。
从一位同事所做的一些测试来看,如果您先删除设备文件夹,然后通过 xcrun simctl delete
删除设备,这似乎不是问题。
在 Xcode 8:
- 运行
$ sudo du -khd 1
在Terminal中查看每个文件夹的文件夹大小;
运行 $ cd library/developer/coresimulator/devices
查看为所有 Xcode 模拟器存储的 GB;
您将开始看到隐藏了大量存储空间的地方!现在只需导航到 Macintosh HD 上的该位置,然后查看每个设备文件夹中的 devices.plist;
通过删除您过去 运行 但不再需要测试的任何 simulators/iOS 版本来决定要删除和保留哪些文件夹。可以充当旧备份的旧 sqlite 版本,或这些文件夹中存在其他内容,因此在删除此文件夹中的所有内容之前请考虑这一点。
我第一次这样做时节省了超过 50GB。
我正在删除一些文件夹和文件,以便在我的驱动器上创建更多 space。我知道在路径中:
~/Library/Developer/CoreSimulator/Devices/
每个模拟器和每个版本都有文件夹。这个文件夹对我来说大约有 11GB 大小。我知道我可以删除不再使用的旧版本模拟器。但是从那个唯一标识符我无法知道哪个是正确的,哪个不是。所以我的问题是:我可以全部删除吗?如果下次我不会在模拟器中安装任何应用程序也没关系,但我可以再放一些东西吗?旧版模拟器?或者别的什么?谢谢
有时 Xcode 喜欢加倍使用其模拟器。
通常对我来说,解决方法一直是将它们全部删除。 删除它们是无害的,因为您以后可以随时重新下载它们。
Xcode > Preferences > Downloads
请记住,如果您那里有任何旧模拟器 (iOS 8.0-),您将无法通过 Xcode.
再次下载它们更新!
您现在可以通过存储管理器在最新的 macOS 上管理 Xcode 台设备。
About This Mac > Storage > Manage > Developer
我前一段时间遇到过类似的问题,xcode 在我的驱动器上占用了 47G。我尝试删除一些模拟器设备,这些设备使我的 xcode 停止工作(疯狂)。所以我删除了与 xcode 相关的所有内容并重新安装。这只是我的经验。
~/Library/Developer/CoreSimulator/Devices/
路径是 Xcode 存储您的各个模拟器设备所需的大部分数据的地方。
Beau Nouvelle 关于删除下载的模拟器版本的建议不会改变这些文件夹的大小,因为运行时存储在别处。
如果你去终端,你可以使用 simctl 工具(Xcode 6+ 附带)列出你拥有的所有实际模拟器设备,连同 ID,以便您可以找出要删除的文件夹。
请注意,您会看到我在这个答案中经常使用 xcrun simctl。通过让 xcrun 为您当前选择的 Xcode 查找合适的 simctl 版本,这为事情增加了一点抽象。根据您的系统,您可能会删除“xcrun”部分,命令行仍然可以找到 simctl 工具。
xcrun simctl list devices
以下是我收到的输出的一些精选片段:
== Devices ==
-- iOS 8.2 --
-- iOS 8.4 --
iPhone 6 Plus (23E36868-715A-48C8-ACC3-A735C1C83383) (Shutdown)
iPad Air (2928379B-70E3-4C59-B5BA-66187DDD3516) (Shutdown)
-- iOS 9.1 --
My Custom iPhone 4s (4F27F577-FFD0-42C1-8680-86BBA7394271) (Shutdown)
iPad Retina (85717B35-313A-4161-850E-D99D5C8194A6) (Shutdown)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-9-0 --
iPhone 4s (D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3) (Shutdown) (unavailable, runtime profile not found)
由此可见,我没有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/
文件夹中的 space,但有时这无济于事,因为文件刚刚移到 /var/folders
下的某个名为 [=18= 的文件夹中],它占用的空间与原始设备一样大 space。但是这个位置需要 root 权限来清理或重新启动,这两者都是不可取的。
从一位同事所做的一些测试来看,如果您先删除设备文件夹,然后通过 xcrun simctl delete
删除设备,这似乎不是问题。
在 Xcode 8:
- 运行
$ sudo du -khd 1
在Terminal中查看每个文件夹的文件夹大小;
运行
$ cd library/developer/coresimulator/devices
查看为所有 Xcode 模拟器存储的 GB;您将开始看到隐藏了大量存储空间的地方!现在只需导航到 Macintosh HD 上的该位置,然后查看每个设备文件夹中的 devices.plist;
通过删除您过去 运行 但不再需要测试的任何 simulators/iOS 版本来决定要删除和保留哪些文件夹。可以充当旧备份的旧 sqlite 版本,或这些文件夹中存在其他内容,因此在删除此文件夹中的所有内容之前请考虑这一点。
我第一次这样做时节省了超过 50GB。