Cách xóa bộ nhớ cache và làm sạch tất cả các mục tiêu Xcode 4 trở lên


238

Jonathan đề nghị ở đây: Xcode Bao gồm các tệp .xib đã bị xóa! việc dọn dẹp tất cả các mục tiêu và làm trống bộ đệm sẽ khắc phục sự cố với Xcode bao gồm các tệp .xib đã bị xóa nhưng tôi không thể tìm cách xóa bộ nhớ cache trong Xcode 4.

Làm thế nào để làm điều đó trong Xcode 4?


Đây là [giải pháp tập lệnh shell] [1] của tôi, giúp xóa dữ liệu dẫn xuất, cho cả xCode 5 và 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Câu trả lời:


514

Command-Option-Shift-K để dọn sạch thư mục build. Thậm chí tốt hơn, thoát Xcode và xóa sạch ~ / Library / Developer / Xcode / DerivingData theo cách thủ công. Xóa tất cả nội dung của nó vì có một lỗi trong đó Xcode sẽ chạy phiên bản cũ của dự án của bạn ở đó ở đâu đó. (Xcode 4.2 sẽ hiển thị cho bạn thư mục Dữ liệu đã tạo: chọn Cửa sổ> Trình tổ chức và chuyển sang tab Dự án. Nhấp vào mũi tên phải ở bên phải tên thư mục Dữ liệu đã tạo.)

Trong trình giả lập, chọn Trình mô phỏng iOS> Đặt lại Nội dung và Cài đặt.

Cuối cùng, để hoàn thiện, bạn có thể xóa nội dung của / var / thư mục ; một số bộ nhớ đệm xảy ra ở đó quá.

CẢNH BÁO: Xóa / var / thư mục có thể gây ra sự cố và bạn có thể cần sửa chữa hoặc cài đặt lại hệ điều hành của mình sau khi thực hiện.

EDIT: Tôi vừa biết rằng nếu bạn ngại vật lộn với / var / thư mục / bạn có thể sử dụng lệnh sau trong Terminal để xóa theo cách được nhắm mục tiêu hơn:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT: Đối với một số vấn đề liên quan đến Swift, tôi thấy việc xóa ~ / Library / Caches / com.apple.dt.Xcode là hữu ích . Bạn mất rất nhiều khi bạn làm điều này, như các bản sao dự phòng của bộ tài liệu tài liệu đã tải xuống, nhưng nó có thể có giá trị.


6
Thật tuyệt, làm sạch đường dẫn: Thư viện / Nhà phát triển / Xcode / DeruredData + đặt lại nội dung và cài đặt của trình giả lập hoạt động!
Tieme

10
Đường dẫn dường như nằm trong thư mục nhà của tôi (ghi chú dấu ngã): ~ / Thư viện / Nhà phát triển / Xcode / DeruredData Có thể điều này là hiển nhiên đối với người khác, nhưng trong trường hợp người khác gặp sự cố ...
Victor Van Hee

37
Hehe, là một übern00b tôi đã xóa / var / db nơi tôi tìm thấy thứ gì đó đến từ Xcode / dự án của tôi. Điều đó làm tôi mất năm giờ rác rưởi trong hệ thống tập tin, sửa chữa và cài đặt lại Lion, v.v ... Hãy cảnh báo! :-)
Jonas Byström

4
@Jonas Tôi cảm thấy bắt buộc phải thêm cảnh báo vào lời khuyên "xóa / var / thư mục". Nó không dành cho những người không quen!
Tìm hiểuCocos2D

7
Không chạy rm -rf / var / thư mục với sudo hoặc bạn sẽ tự sửa chữa như mình :)
Josip B.

68

Command-Option-Shift-K nên làm điều đó. Hoặc, đi tới menu sản phẩm, bấm phím tùy chọn, bây giờ tùy chọn "Clean" sẽ thay đổi thành "Clean Build Directory ..." chọn tùy chọn đó.


Không, quá tệ .. tôi chỉ thay đổi và đổi tên một tệp xib và làm sạch ứng dụng như bạn đã nói nhưng nó vẫn tải tốt mà không có lỗi.
Tieme

2
Wow, không bao giờ mới về thủ thuật phím alt đó cho các menu Mac OS X !!! Điều đó thực sự định nghĩa ý nghĩa của "Alt" ernate.
trusktr

19

Ngoài việc thực hiện như sau, bạn có thể gặp phải sự cố này nếu các tệp Storyboard của ứng dụng của bạn được bản địa hóa. Đầu tiên, thực hiện từng điều sau đây:

  • Xây dựng sạch
  • Đặt lại Trình mô phỏng
  • Khởi động lại Xcode
  • Xóa DerivedDatathư mục của bạn trong ~ / Library / Developer / Xcode / DeruredData
  • Khởi động lại máy tính

Điều cuối cùng làm việc cho tôi là tạo lại các tệp bản địa hóa bảng phân cảnh và xóa bản địa hóa tiếng Anh (không cần thiết vì Cơ sở địa phương là tiếng Anh). Để tải lại chuỗi Storyboard của bạn, hãy xem câu trả lời này trên StackOverflow .

Tôi đã nhận thấy rằng các phần phi văn bản trong Bảng phân cảnh của tôi đang được cập nhật, nhưng không phải là văn bản được bản địa hóa. Nếu bạn có bản địa hóa trong ứng dụng của mình, tôi khuyên bạn nên kiểm tra để đảm bảo rằng bản địa hóa của bạn được cập nhật (ngay cả khi chúng là .stringstệp).


2
Xóa nội dung (không phải toàn bộ thư mục) của / var / thư mục đã làm điều đó cho tôi! Nếu bạn đang tìm kiếm /var/ Folders...Chọn vào Thư mục từ menu Tìm kiếm và nhập / var / làm vị trí của thư mục.
Patricia

+1 trên hướng dẫn / var / thư mục ... việc dọn dẹp và xóa DerivingData đã hoạt động một phần nhưng điều đó đã thực hiện thủ thuật
EeKay

1
1. Clean Build 2. Reset Simulator 3. Khởi động lại Xcode Điều đó đã giải quyết vấn đề của tôi.
Alan Dong

CẢNH BÁO! Coi chừng việc xóa nội dung khỏi /var/folders/có thể gây ra sự cố nghiêm trọng và có thể dẫn đến việc phải cài đặt lại hoàn toàn OSx từ bảng điều khiển khôi phục!
Magnus W

18

Tôi tìm thấy một cách khác ngoài lệnh + tùy chọn + shift + K. Trong XCode 4.2, có một trình tổ chức có thể được mở từ biểu tượng trên cùng bên phải. Bạn có thể làm sạch tất cả các tài liệu lưu trữ và các tùy chọn dự án đã lưu từ đó. Điều này giúp ích cho tình huống của tôi (tôi đã thấy các tệp bị xóa cũ trong mainBundle).


3
Vâng, đó là một cách dễ dàng hơn là làm sạch ~ / Thư viện / Nhà phát triển / Xcode / DeruredData theo cách thủ công
Tieme

10

Tôi đã nhổ tóc ra khỏi đầu vì nghĩ rằng mình cũng gặp vấn đề tương tự. Khi xây dựng ứng dụng, tôi không nhận được kết quả tương tự trên iPhone của mình như trên trình giả lập.

Vấn đề là bằng cách nào đó tôi đã tạo một phiên bản được bản địa hóa của tệp MainStoryboard.storyboard. Vì vậy, khi tôi chạy ứng dụng trên điện thoại, nó hiển thị phiên bản tiếng Đan Mạch ... và trình giả lập hiển thị phiên bản tiếng Anh.

Vâng tôi mới! :)


2
Tôi đã có vấn đề tương tự. Đã thực hiện lệnh-tùy chọn-shift-K nhưng không có kết quả. Đã xóa ... DeruredData, không có giải pháp. Hóa ra việc thay đổi XIB cấp cao nhất chỉ thay đổi phiên bản tiếng Anh và tôi đã thử nghiệm với phiên bản XIB của Hà Lan. Thở dài ...

1
Ngoài ra, hãy lưu ý rằng có nhiều cách để bản địa hóa ứng dụng của bạn nơi các tệp văn bản riêng biệt được tạo cho mỗi ngôn ngữ. Trong những trường hợp như vậy, việc thay đổi .xib không làm gì cả.
dandan78

7

Để xóa tất cả dữ liệu dẫn xuất và bộ đệm mô-đun, hãy /var/folderssử dụng tập lệnh ruby ​​nhỏ này .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Điều này chỉ giải quyết một fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/lỗi cho tôi.


1
Lỗi rõ ràng gây ra "lỗi nghiêm trọng: tệp AST không đúng định dạng hoặc bị hỏng: 'Không thể tải mô-đun" và lỗi của giải pháp nhẹ được đề xuất bởi Xcode, vẫn xảy ra trong Xcode 6.1. Và giải pháp để thoát Xcode và xóa thủ công ~ / Library / Developer / Xcode / DeruredData theo cách thủ công vẫn hoạt động. Tôi không cần phải dọn dẹp mọi thứ trong đó; chỉ có hai thư mục con: ModuleCache và thư mục con có tên có liên quan đến dự án vấn đề.
Jerry Krinock

5

Tôi gặp một số vấn đề với Xcode 5.1 bị sập khi tôi mở cửa sổ doc.

Tôi không chắc chắn về nguyên nhân của nó, bởi vì tôi cũng đang cập nhật tài liệu, trong khi tôi mở cửa sổ.

Chà, trong Xcode 5, thư mục mô-đun hiện nằm trong thư mục dữ liệu dẫn xuất, mà tôi vì lý do rõ ràng đã không xóa. Tôi đã xóa nội dung của ~ / Library / Developer / Xcode / DeruredData / ModuleCache~ / Library / Preferences / com.apple.Xcode.plist và mọi thứ sau đó dường như hoạt động, sau khi tôi khởi động lại Xcode.


1

Khi sử dụng "Mô hình dữ liệu", có các tùy chọn trong trình kiểm tra để tạo các lớp, đối với tôi đây là trường hợp vì đã có một lớp với tên hiện có.

Codegen: đã giải quyết nó cho tôi.

nhập mô tả hình ảnh ở đây


1

"DeruredData" của tôi với Xcode 10.2 và Mojave đã ở đây:

MacHD / Người dùng / [MyUser] / Thư viện / Nhà phát triển / Xcode


0

Bạn phải cẩn thận về tập tin xib. Tôi đã thử tất cả các cách trên và không có gì làm việc cho tôi. Tôi đã sử dụng các UIButton tùy chỉnh được xác định trong xib và nhận ra rằng nó có thể liên quan đến thực tế là tôi đã gán các thuộc tính ở đó không thay đổi theo chương trình. Nếu bạn đã xác định hình ảnh hoặc văn bản ở đó, hãy xóa chúng. Khi tôi làm, những thay đổi lập trình của tôi bắt đầu có hiệu lực.


0

Đây là giải pháp kịch bản shell của tôi , giúp xóa dữ liệu dẫn xuất và xóa các tài sản được lưu trong bộ nhớ cache của dự án, cho Xcode 4, 5 và 6.

Đôi khi, chỉ cần gọi rm -rf trên thư mục Dữ liệu đã tạo để lại một hoặc hai tệp, nhưng tập lệnh của tôi lặp lại cho đến khi tất cả các tệp bị xóa.


0

Tôi đã thử hầu hết mọi thứ nhưng không thể giúp được, điều gì đã giúp tôi vô hiệu hóa SIP (Bảo vệ tích hợp hệ thống) nó hoạt động, tôi không biết điều gì xảy ra khi nào và bằng cách nào nhưng tệp hệ thống bị nhầm lẫn ở đâu đó và gây ra điều này ... mặc dù có thể có rủi ro để vô hiệu hóa điều này rõ ràng

đây là cách

1.Power trên máy Mac của bạn và giữ các phím [lệnh] + [R] để truy cập Phân vùng khôi phục.

2.Từ phân vùng phục hồi, bấm vào Tiện ích từ thanh menu, sau đó chọn Terminal.

3.Nhập lệnh sau vào Terminal và nhấn Enter để thực thi lệnh: csrutil vô hiệu hóa

4.Khi lệnh đã được thực thi, thoát khỏi Terminal và khởi động lại máy Mac. Khi bạn đăng nhập lại vào OS X, SIP sẽ bị tắt.


1
Âm thanh rủi ro thực sự. SIP làm gì?
Tieme

Bảo vệ toàn vẹn hệ thống bảo vệ các tệp và thư mục hệ thống được gắn cờ để bảo vệ. Về cơ bản sẽ tăng thêm bảo mật cho hệ thống của bạn, hạn chế ngay cả sức mạnh của lệnh sudo
Fidel Zwelithini
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.