Xcode 使ってますか?最近は Command Line Tools なんてものがあるので Xcode.app をわざわざ入れる必要がなくなりましたよね(最近って言うほど最近ではない)。私は人様に配布するものを作っているので Xcode.app のお世話になっています。
この Xcode.app ですが、インストールすると約 5 GB くらいになります。32-bit のコンパイルもするので xcode-select
で Xcode 9.x 系と Xcode 10.x 系を切り替えて使うんですが、両方合わせると 10 GB を超えます。
Xcode.app には様々なプラットフォームに応じたツールが入っています。以下は 9.2 の場合です。
- AppleTVOS.platform
- AppleTVSimulator.platform
- MacOSX.platform
- WatchOS.platform
- WatchSimulator.platform
- iPhoneOS.platform
- iPhoneSimulator.platform
この中で私が使うのは MacOSX だけです。なので要らないプラットフォームは毎回削除してます。(xip
コマンドに exclude 的なオプションがありそうな気もするがマニュアルには解凍の -x
オプションすら載っていない)
まずは MacOSX.platform
以外のプラットフォームディレクトリを探します。
find /Applications/Xcode.app -type d -name "*.platform" \! -name "MacOSX.platform"
出てくるのものは下記の通りですが、私は AppleTV も iPhone も AppleWatch も開発しませんので消します。
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform /Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/Developer/Platforms/AppleTVSimulator.platform /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/Developer/Platforms/iPhoneSimulator.platform
削除前の容量を確認しておくと Xcode 9.2 で 5.7 GB でした。
$ du -sh /Applications/Xcode.app 5.7G /Applications/Xcode.app
削除は find
コマンドの結果を xargs
コマンドに渡して rm
コマンドで削除するだけです。
find /Applications/Xcode.app -type d -name "*.platform" \! -name "MacOSX.platform" | sudo xargs rm -rf
削除前は 5.7 GB でしたが 1.4 GB まで減りました。かなりの減量ですね。
$ du -sh /Applications/Xcode.app 1.4G /Applications/Xcode.app
xcodebuild
コマンドで SDK を確認すると macOS の SDK だけになりますが問題なく使えます。
$ xcodebuild -showsdks macOS SDKs: macOS 10.13 -sdk macosx10.13
「メインでは Xcode 10.x 系を使っているんだけどたまに Xcode 9.x 系使いたいんだよなぁ…」という時に 9.x 系の不要な SDK を削除しておくと容量を無駄に喰わなくて済みます。