我可以删除 Xcode.app/Contents/Developper/ 下的平台吗?

Can I delete the Platforms under Xcode.app/Contents/Developper/?

我的 Mac 运行 磁盘用完了。我搜索了大文件和目录,发现目录 /Applications/Xcode.app/Contents/Developer/Platforms 占用了我大约 20GB 的磁盘空间。

ls -l
total 0
drwxr-xr-x  10 root  wheel  320 Dec 18 14:37 AppleTVOS.platform
drwxr-xr-x   7 root  wheel  224 Dec 18 15:10 AppleTVSimulator.platform
drwxr-xr-x   8 root  wheel  256 Dec 18 14:44 MacOSX.platform
drwxr-xr-x  10 root  wheel  320 Dec 18 15:10 WatchOS.platform
drwxr-xr-x   7 root  wheel  224 Dec 18 15:10 WatchSimulator.platform
drwxr-xr-x  10 root  wheel  320 Dec 18 15:10 iPhoneOS.platform
drwxr-xr-x   8 root  wheel  256 Dec 18 15:10 iPhoneSimulator.platform

我看了一下文件夹的名字,貌似是模拟器,又名虚拟机,适用于不同的苹果操作系统。

我对 Apple os 开发很陌生,对此毫无兴趣。我只用 Mac 写 c、java、python、html 等等。我可以删除这些不需要的文件吗?或者我应该至少保留 MacOSX.platform?

Don Mag 的建议很好。

我不会从 /Applications/Xcode.app 文件夹中删除任何内容,因为这可能会导致您出现问题 运行 Xcode.

虽然在 ~/Library/Developer 中有一个文件夹,但它存储了您一直在为其开发的 iOS/tvOS/watchOS 等任何版本的 DeviceSupport 的下载版本。每次 OS 更新时,这些文件夹中会出现另一个下载,旧版本不会自动删除。

任何这些都可以删除,因为它们会在您下次构建到 OS 版本时自动再次下载。不过请记住,首次构建未缓存版本需要额外的等待时间。

我使用 App Store 中名为 'DevCleaner' 的应用程序,它允许我 select 任何 DeviceSupport 文件、存档(我倾向于保留这些文件)和派生数据。它很有用,因为它显示了每个文件夹占用了多少 space。

我 select 除了我正在开发的 OSes 的最新版本。

希望对您有所帮助。

您可以删除平台文件夹中的所有模拟器。 您可以删除任何平台文件夹中除 "developer" 和“.plist”文件之外的所有文件夹,例如: Xcode.app/Contents/Developer/Platforms/AppleTVOS.平台 请注意,如果您删除开发者文件夹或任何平台文件夹中的某些“.plist”文件,Xcode将无法打开。

我删除不需要的平台的经验是 如果您禁用了 SIP。我不使用 Xcode,但它似乎有效(我尝试构建示例 Macos 应用程序)。像 Clang 这样的命令行工具没有问题。

请注意,更改会破坏 Xcode 签名(请检查 codesign --verify)。这意味着当启用 SIP(​​系统完整性保护)时它不会工作:

> codesign --verify /Applications/Xcode.app/
/Applications/Xcode.app/: a sealed resource is missing or invalid

我建议至少保留 MacOSX.platform,因为它是为 Mac OS 本身构建程序所必需的。

XCODE_PLATFORMS=/Applications/Xcode.app/Contents/Developer/Platforms

rm -rf "${XCODE_PLATFORMS}/AppleTVOS.platform"
rm -rf "${XCODE_PLATFORMS}/AppleTVSimulator.platform"
rm -rf "${XCODE_PLATFORMS}/WatchOS.platform"
rm -rf "${XCODE_PLATFORMS}/WatchSimulator.platform"
rm -rf "${XCODE_PLATFORMS}/iPhoneOS.platform"
rm -rf "${XCODE_PLATFORMS}/iPhoneSimulator.platform"

经过运行以上,我只有这几个SDK:

> xcodebuild -showsdks
macOS SDKs:
    DriverKit 19.0                  -sdk driverkit.macosx19.0
    macOS 10.15                     -sdk macosx10.15

请注意,每次 Xcode 更新都会恢复所有平台。

如果您转到这些 .platform 文件夹中的任何一个,然后在该文件夹下转到:

Library/Developer/CoreSimulator/Profiles/Runtimes

然后删除里面的文件,只要你不用那个模拟器(我的是watchos)就应该没问题。

是的,您可以从此文件夹中删除平台

但请确保您删除了平台和模拟器,否则Xcode将在

后拒绝重启

Ios 手表示例: 删除 WatchOS.platformWatchSimulator.platform