Cách xóa bộ nhớ đệm Swift Package Manager an toàn
Đội ngũ AskClean · Cập nhật 2026-07-31
Dùng swift package clean cho sản phẩm build của gói hiện tại, reset để đặt lại toàn bộ trạng thái cục bộ của gói và swift package purge-cache chỉ cho bộ nhớ đệm kho lưu trữ toàn cục. Giữ Package.swift và Package.resolved: chúng xác định dependency và không phải bộ nhớ đệm dùng rồi bỏ.

SwiftPM có nhiều lớp
Gói dòng lệnh lưu checkout và sản phẩm trong .build, còn SwiftPM duy trì bộ nhớ đệm kho lưu trữ dùng chung. Xcode có thể lưu sản phẩm gói trong DerivedData của dự án. Hãy dọn lớp hẹp nhất giải thích được vấn đề.
Chọn lệnh theo phạm vi
swift package clean xóa sản phẩm build của gói hiện tại. reset rộng hơn và chuẩn bị lại trạng thái cục bộ. purge-cache ảnh hưởng các lượt tải dùng chung giữa nhiều dự án, nên lần phân giải sau có thể cần mạng và lâu hơn.
- Lưu thay đổi và xác nhận Package.swift cùng Package.resolved.
- Chạy swift package clean từ thư mục gốc rồi build lại.
- Chỉ dùng swift package reset nếu trạng thái cục bộ vẫn hỏng.
- Chỉ dùng swift package purge-cache khi bộ nhớ đệm dùng chung được xác nhận là nguyên nhân.
- Kiểm tra dependency và test sau khi dọn.
Chạy swift package --help; các lệnh con có sẵn phụ thuộc phiên bản Swift đã cài.
Giữ tệp phân giải
Package.resolved ghi lại phiên bản cụ thể. Xóa nó có thể chọn phiên bản được phép khác và biến việc dọn dẹp thành cập nhật. Package.swift, Sources, Tests, plugin và dependency cục bộ là mã nguồn; đừng xóa như bộ nhớ đệm.
Xử lý Xcode riêng
Với lỗi chỉ có trong Xcode, thử File > Packages > Reset Package Caches và Resolve Package Versions hoặc xóa DerivedData của dự án đó. Đo các thư mục .build trước khi purge toàn cục. AskClean tìm danh mục, còn lệnh Swift xác định phạm vi.
Câu hỏi thường gặp
swift package clean xóa gì?
Sản phẩm build của gói hiện tại; lần build sau sẽ tạo lại.
reset và purge-cache có giống nhau không?
Không. reset nhắm gói hiện tại, purge-cache nhắm bộ nhớ đệm kho lưu trữ toàn cục.
Có nên xóa Package.resolved không?
Không cho việc dọn thông thường. Chỉ xóa nếu bạn chủ ý muốn phân giải phiên bản mới.
Nguồn tham khảo