Xcodeの不要なデバイスシミュレーターを削除できますか?


64

私のラップトップのXcodeはストレージの多くを消費することがわかったので、Xcodeの不要なファイルを削除しようとしています。

の下に4つのディレクトリがありますApplication/Xcode.app/Contents/Developer/Platforms/。私はXcodeをほとんど基本的なiOS開発にのみ使用しているのでWatchSimulator.platform、そうでAppleTVSimulator.platformはないと感じています。

これらのプラットフォームのディレクトリを直接削除できるかどうか知りたいですか?

ディレクトリ


参考までに、表示されるスペースは圧縮されているように見えるため、表示されるスペースの半分しか得られません。Get Infoシートを見てください。たとえば、WatchOS.platformのシステムでは、2,212アイテムに対して50,579,830バイト(ディスク上では28.2 MB)を示し、29,705アイテムに対してAppleTVSimulator.platformは1,865,477,227バイト(ディスク上に1.1 GB)を示します。そのため、OPに表示される値ほど多くの空き領域を獲得することはできません。
user3439894

ファイルは圧縮されているとりんごのHFS +ファイルシステムは、透明な圧縮をサポートしていますが、ファインダーとls、ターミナルでは、ファイルを参照するにはフラグを欠い使用しているhfsCompressionをあなたが見ることができる情報を見るシート、サンセリフディスク上の値が、その後、バイトサイズのショー劇的に異なっています。サードパーティによって作成されたユーティリティがあります。これには、自分でコンパイルしたい場合にソースコードafsctoolが含まれています。その機能の1つは、既存のHFS +圧縮ファイルに関する情報を取得することです。
user3439894

ドライブ上のこれらの大きなファイルを判別するのにどのプログラムが役立ちますか?
Pysis

1
@Pysisは、OmniDiskSweeperのように見えます。このツールはAPFSと圧縮用に更新されていませんが、現在いくつかの新しいテストビルドがあるようです。
ザックリプトン

1
@Zach Lipton、OPがHigh SierraとAPFSを実行している場合、APFSはまだ圧縮をサポートしていないため、ファイルは圧縮されない可能性があります。または、10.13.1でこの変更はありましたか?
user3439894

回答:


63

はい、使用していないシミュレータは削除できます。古いiOSバージョンのサポートを停止すると、これを定期的に行います。

それらを削除し、将来のある時点でそれらが必要であることがわかった場合、Appleの開発者サイトからそれらを再ダウンロードできます。

それらを削除する最良の方法はXcodeにあります。に進みWindow -> Devices and Simulatorsます。これにより、Xcodeで使用するすべてのデバイスを含む新しいウィンドウが開きます。

上部のをタップするSimulatorsと、左側にリストが表示されます。

そこから、削除したいシミュレーターを見つけてCntl-クリック(または右クリック)し、を選択しますDelete

これは、サポートしなくなった各iOSバージョンで実行される各シミュレーターで行います。


7
私はこの投稿が数年前のものであることを知っていますが、これはシミュレーターを削除するようには見えず、むしろXcodeでそれをリストするだけです。したがって、ディスク容量を節約するために削除する必要がある場合、これは正しい方法ではありません。
ショーンパターソン

34

Xcodeはシミュレータをすべてのユーザーと共有するようになりました。そのため、次のフォルダーからシミュレーターを削除する必要があります。

/Library/Developer/CoreSimulator/Profiles/Runtimes

例えば:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo rm -rf iOS\ 8.4.simruntime/
sudo rm -rf iOS\ 9.3.simruntime/

乾杯!


29

ターミナルでこのコマンドを使用すると、使用できないシミュレーターをすべて簡単に削除できます。

xcrun simctl delete unavailable

1
現実には、これはあまり役に立ちません。実行xcrun simctl listすると、デバイスの約10%のみが「使用不可」と見なされます。また、デバイスはここでは実際のスペースを占有するものではありません。iOSランタイムは。@Francoisの答えは実際にははるかに優れています。
joshuakcockrell

1
@joshuakcockrell必ずしもそうではありません。古いバージョンのシミュレーターを何年も蓄積してきた後、これはばかげた量のスペースを解放しました。だから私はymmvを推測します。
ポールカントレル

wc -lリスト内の「使用不可」で128行の148行をカウント()しました。上記のdeleteコマンドは14GBを戻しました
Craig

15

@fsbの答えにもかかわらず、シミュレータの「インスタンス」を削除できますが、不要になった古いシミュレータプラットフォームで使用されていた巨大なスペースを解放する正しい方法は、次のフォルダに移動します。

~/Library/Developer/Xcode/iOS DeviceSupport

不要になったシミュレーター/プラットフォームに対応するフォルダーを削除します。

さらに、他のこれおよび他のヒントと非常に良い記事があります:


3
/Library/Developer/Xcode新しいmacOSの更新後に削除されたようです。どこにも見つかりません。
スハイブ

1
@Suhaib では、ホームディレクトリでパスを開始する最初のチルダ " "を忘れました。正しいディレクトリは次のとおり~/Library/Developer/Xcode/iOS DeviceSupportです。
リカルドバローゾ

6

Xcodeが2019+ Catalina、Xcode 11.0でシミュレータを保存する場所

ランタイム

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

例:iOS 13.0watchOS 6.0これらは最も多くのスペースを使用します。それぞれ最大5GBまで可能

装置

$ open ~/Library/Developer/CoreSimulator/Devices

例:iPhone XriPhone 11 Pro Max。これらは通常、それぞれ<15 mbです。

説明

シミュレーターは、ランタイムとデバイスに分割されます。実行$ xcrun simctl listすると概要が表示されますが、これらのシミュレーターの物理的な場所を見つけたい場合は、これらのディレクトリを確認してください。

サポートしていないランタイムを削除してもまったく安全です。必要に応じて、これらを後で再インストールできます。


1
ありがとう、これは私を大いに助けてくれました!
アシド

5
  • すべてのシミュレーターをリストするxcrun simctl list devicesか、xcrun simctl list --json

  • 特定のデバイスを削除するには xcrun simctl delete <device udid>

  • サポートされなくなったランタイムの古いデバイスを削除する xcrun simctl delete unavailable


あなたが使用することができxcrun simctl delete all、私は考えます
revau.lt

1

Terminal.appを開き、次を実行します。

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

次のコマンドでシミュレーターを削除するiOSバージョンを入力します。たとえば、iOS 12.0で削除する場合は、次を実行します。

sudo rm -rf iOS\ 12.0.simruntime/


1

iOSバージョンごとにシミュレーターを削除するには:

特定のバージョンのシミュレーターのみを削除する場合、たまたまfastlaneインストールしている場合は、インタラクティブなrubyシェルを起動し、次のコマンドを実行してすべてのiOS 10シミュレーターを削除できます。

# launch the interactive ruby shell (irb)
$ irb

# require the device manager capabilities of fastlane core
irb(main):001:0> require 'fastlane_core/device_manager'

# delete all iOS 10 simulators
irb(main):002:0> FastlaneCore::Simulator.delete_all_by_version(os_version: "10.0")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.