Tôi có thể xóa các trình giả lập thiết bị không cần thiết của Xcode không?


50

Tôi thấy rằng Xcode trên máy tính xách tay của tôi tiêu tốn nhiều dung lượng lưu trữ, vì vậy tôi đang cố gắng xóa các tệp không cần thiết trong Xcode.

Có bốn thư mục dưới Application/Xcode.app/Contents/Developer/Platforms/. Tôi cảm thấy điều đó WatchSimulator.platformAppleTVSimulator.platformkhông cần thiết, vì tôi sử dụng Xcode hầu như chỉ để phát triển iOS cơ bản.

Tôi muốn biết nếu tôi có thể xóa các thư mục nền tảng trực tiếp?

Thư mục


Chỉ là một FYI ... Bạn sẽ chỉ đạt được khoảng một nửa không gian hiển thị, vì chúng dường như bị nén. Nhìn vào bảng Get Info, ví dụ trên hệ thống của tôi cho WatchOS.pl platform, nó hiển thị 50.579.830 byte (28,2 MB trên đĩa) cho 2.212 mục và AppleTVSimulator.pl platform hiển thị 1.865.477.227 byte (1.1 GB trên đĩa) cho 29.705 mục. Vì vậy, bạn sẽ không có được nhiều không gian trống như các giá trị được hiển thị trong OP của bạn.
dùng3439894

Các tệp được nén và Hệ thống tệp HFS + của Apples hỗ trợ Nén trong suốt nhưng Finder và lstrong Terminal thiếu cờ để xem tệp đang sử dụng hfsCompression , sans Bảng thông tin nơi bạn có thể thấy giá trị trên đĩa khác nhau đáng kể sau đó kích thước hiển thị theo byte . Có một tiện ích được viết bởi bên thứ ba, bao gồm mã nguồn nếu ai đó muốn tự biên dịch nó, afsctool . Trong số các khả năng của nó là để có được thông tin về (các) tệp nén HFS + hiện có.
dùng3439894

Chương trình nào đang giúp bạn xác định các tệp lớn này trên ổ đĩa của bạn?
Pysis

1
@Pysis Hình như OmniDiskSweeper đối với tôi. Công cụ đó chưa được cập nhật cho APFS và nén, mặc dù có vẻ như họ có một số bản dựng thử nghiệm mới hiện nay.
Zach Lipton

@Zach Lipton, Nếu OP đang chạy High Sierra và APFS thì các tệp có thể không được nén vì APFS chưa hỗ trợ nén. Hay điều này đã thay đổi trong 10.13.1?
dùng3439894

Câu trả lời:


50

Có, bạn có thể xóa bất kỳ trình giả lập nào mà bạn không sử dụng. Tôi làm điều này thường xuyên khi tôi ngừng hỗ trợ các phiên bản iOS cũ hơn.

Nếu bạn xóa chúng và sau đó bạn thấy rằng bạn cần chúng vào một thời điểm nào đó trong tương lai, bạn có thể tải xuống chúng từ trang web dành cho nhà phát triển của Apple.

Cách tốt nhất để xóa chúng là trong Xcode. Tới Window -> Devices and Simulators. Điều này sẽ mở một cửa sổ mới với tất cả các thiết bị bạn sử dụng trong Xcode.

Ở trên cùng, chạm vào Simulatorsvà bạn sẽ thấy một danh sách ở phía bên trái.

Từ đó, tìm trình giả lập bạn muốn xóa và Cntl- nhấp (hoặc nhấp chuột phải) và chọn Delete.

Tôi làm điều này với mỗi trình giả lập chạy trong mỗi phiên bản iOS mà tôi không còn hỗ trợ.


Tôi biết bài đăng này đã được vài năm tuổi, nhưng điều này dường như không xóa trình giả lập, mà chỉ là danh sách của nó trong Xcode. Vì vậy, nếu cần phải loại bỏ nó để tiết kiệm dung lượng đĩa, đây không phải là phương pháp chính xác.
Sean Patterson

17

Xcode hiện chia sẻ các trình giả lập với tất cả người dùng. Vì vậy, bạn cần xóa các trình giả lập khỏi thư mục sau:

/Library/Developer/CoreSimulator/Profiles/Runtimes

Ví dụ:

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

Chúc mừng!


15

Bạn có thể dễ dàng loại bỏ tất cả các trình giả lập không có sẵn bằng lệnh này trong thiết bị đầu cuối:

xcrun simctl delete unavailable

11

Mặc dù câu trả lời của @ fsb cho phép xóa "trường hợp" giả lập đúng cách để giải phóng một không gian rộng lớn được sử dụng bởi các nền tảng giả lập cũ không cần thiết nữa là vào thư mục sau:

~/Library/Developer/Xcode/iOS DeviceSupport

và xóa các thư mục tương ứng với trình giả lập / nền tảng bạn không cần nữa.

Ngoài ra, có một bài viết rất hay với các mẹo này và các mẹo khác:


2
có vẻ như /Library/Developer/Xcodeđã bị xóa sau khi cập nhật macOS mới. Tôi không thể tìm thấy nó ở bất cứ đâu.
Suhaib

1
@Suhaib bạn đã quên dấu ngã " ~ " ban đầu làm cho đường dẫn bắt đầu trên thư mục chính của bạn. Thư mục bên phải là : ~/Library/Developer/Xcode/iOS DeviceSupport.
Ricardo Barroso

1

Mở Terminal.app và chạy như sau:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

Bây giờ, hãy nhập phiên bản iOS mà bạn muốn xóa trình giả lập theo lệnh bên dưới, ví dụ: nếu bạn muốn xóa cho iOS 12.0, hãy chạy:

sudo rm -rf iOS\ 12.0.simruntime/


1
  • liệt kê tất cả các trình giả lập xcrun simctl list deviceshoặcxcrun simctl list --json

  • xóa thiết bị cụ thể xcrun simctl delete <device udid>

  • để xóa các thiết bị cũ trong thời gian chạy không còn được hỗ trợ xcrun simctl delete unavailable


0

Để xóa trình giả lập theo phiên bản iOS:

Nếu bạn chỉ muốn xóa trình giả lập cho một phiên bản cụ thể và bạn đã fastlanecài đặt, bạn có thể khởi chạy trình bao ruby ​​tương tác và chạy các lệnh sau để xóa tất cả trình giả lập 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")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.