Як очистити кеші та очистити всі цілі Xcode 4 і пізніші


238

Джонатан пропонує тут: Xcode Включає файли .xib, які були видалені! що очищення всіх мішеней та спорожнення кешів вирішить проблему з Xcode, включаючи видалені файли .xib, але я не можу знайти спосіб очистити кеш у Xcode 4.

Як це зробити в Xcode 4?


Ось моє [скриптове рішення оболонки] [1], яке видаляє отримані дані для xCode 5 і 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Відповіді:


514

Command-Option-Shift-K, щоб очистити папку збірки. Ще краще вийти з Xcode та очистити ~ / Бібліотека / Розробник / Xcode / DerivedData вручну. Видаліть увесь його вміст, тому що є помилка, де Xcode запустить стару версію вашого проекту, яка десь там. (Xcode 4.2 покаже вам папку "Отримані дані": виберіть "Вікно"> "Органайзер" та перейдіть на вкладку "Проекти". Клацніть стрілку праворуч праворуч від назви папки "Отримані дані".)

У тренажері виберіть iOS Simulator> Скидання вмісту та налаштувань.

Нарешті, для повноти можна видалити вміст / var / папок ; там також відбувається певне кешування.

ПОПЕРЕДЖЕННЯ: Видалення / var / папок може спричинити проблеми, і вам може знадобитися відремонтувати або перевстановити операційну систему після цього.

EDIT: Я щойно дізнався, що якщо ви боїтеся схопитися з / var / folders /, ви можете скористатись такою командою в Терміналі, щоб видалити більш цільовим способом:

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

РЕДАКТУВАННЯ: Для деяких проблем, пов'язаних зі швидкістю, я вважаю корисним видалити ~ / Library / Caches / com.apple.dt.Xcode . Ви багато втрачаєте, роблячи це, як і ваші запасні копії завантаженої документації наборів документів, але це може бути варте того.


6
Приємно, очищення контуру: Бібліотека / розробник / Xcode / DerivedData + скидання вмісту та налаштування тренажера працює!
Тієм

10
Здається, шлях у моєму домашньому довіднику (примітка tilde): ~ / Бібліотека / Розробник / Xcode / DerivedData Можливо, це було очевидно для інших, але у випадку, якщо хтось інший має проблеми ...
Victor Van Hee

37
Хе-хе, будучи übern00b, я видалив / var / db, де знайшов щось, що прийшло з Xcode / мого проекту. Це коштувало мені п’яти годин виїжджаючих у файлову систему, ремонту та перевстановлення Lion тощо. Будьте попереджені! :-)
Йонас Байстрем

4
@Jonas Я змушений був додати попередження до поради "видалити / вар / папки". Це не для непосвячених!
LearnCocos2D

7
Не запускайте rm -rf / var / папки з sudo, або ви закінчите ремонт як я :)
Josip B.

68

Command-Option-Shift-K повинен це робити. Крім того, перейдіть до меню продукту, натисніть клавішу опції, тепер параметр "Очистити" зміниться на "Очистити папку збірки ...", виберіть цю опцію.


Ні, занадто погано .. я просто змінив і перейменував Xib-файл і очистив додаток, як ви вже сказали, але він все ще завантажує добре без помилок.
Tieme

2
Ух, ніколи не новий про цей альт-ключевий трюк для меню Mac OS X !!! Це дійсно визначає значення "Alt" ernate.
trusktr

19

На додаток до цього, ця проблема може виникнути, якщо локалізовані файли розкадрівки вашого додатка. По-перше, виконайте кожне з цих дій:

  • Чиста збірка
  • Скиньте тренажер
  • Перезавантажте Xcode
  • Видаліть свою DerivedDataпапку в ~ / Бібліотека / Розробник / Xcode / DerivedData
  • Перезавантажте комп'ютер

Нарешті для мене спрацювало повторне генерування файлів локалізації розкадровки та видалення англійської локалізації (що було непотрібним, тому що базовий локаль - це англійська мова). Щоб перезавантажити рядки Storyboard, дивіться цю відповідь на StackOverflow .

Я помітив, що нетекстові частини моєї дошки розгортаються, але не локалізований текст. Якщо у вашій програмі є локалізація, я рекомендую перевірити, чи перевіряються ваші локалізації (навіть якщо вони є .stringsфайлами).


2
Видалення вмісту (не всієї папки) / var / папок зробило це для мене! Якщо ви шукаєте /var/folders ... Виберіть «Перейти до папки» в меню «Finder's Go» та введіть / var / як розташування папки.
Патрісія

+1 в інструкції / var / folders ... очищення та видалення DerivedData працювало частково, але це зробило трюк
EeKay

1
1. Очистити збірку 2. Скинути симулятор 3. Перезапустити Xcode, що вирішило мою проблему.
Алан Донг

УВАГА! Слідкуйте за тим, що видалення вмісту з нього /var/folders/може спричинити серйозні проблеми та призвести до необхідності повністю перевстановити OSx з консолі відновлення!
Магнус Ш

18

Я знайшов інший спосіб, крім команди + варіант + shift + K. У XCode 4.2 є органайзер, який можна відкрити з правого верхнього значка. Ви можете очистити звідти всі архіви та збережені параметри проекту. Це допомогло моїй ситуації (я бачив старі видалені файли в mainBundle).


3
Так, це непростіший спосіб, ніж очищення ~ / Бібліотека / Розробник / Xcode / DerivedData вручну
Tieme

10

Я витягнув волосся з голови, тому що думав, що в мене така ж проблема. Під час створення програми я не отримав такого ж результату на своєму iPhone, як на тренажері.

Проблема полягала в тому, що я якось зробив локалізовану версію файлу MainStoryboard.storyboard. Тож коли я запустив додаток на своєму телефоні, він показав датську версію ... і тренажер показав англійську версію.

Так, я новачок! :)


2
У мене були подібні проблеми. Зробив команду-варіант-shift-K безрезультатно. Видалено ... Отримані дані, рішення немає. Виявилося, що зміна верхнього рівня XIB змінює лише англійську версію, і я тестував голландську версію XIB.
Зітхніть

1
Також пам’ятайте, що існують способи локалізації програми, де створюються окремі текстові файли для кожної мови. У таких випадках зміна .xib нічого не робить.
dandan78

7

Щоб видалити всі отримані дані та кеш модулів, /var/foldersвикористовуйте цей маленький сценарій рубіну .

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

Це просто вирішило fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/для мене помилку.


1
Очевидна помилка, що викликає "фатальну помилку: неправильно сформований або пошкоджений файл AST:" Не вдається завантажити модуль ", і збій ніжного рішення, запропонованого Xcode, все ще має місце в Xcode 6.1. І рішення покинути Xcode та очистити вручну ~ / Бібліотека / Розробник / Xcode / DerivedData вручну все ще працює. Мені не потрібно було все прибирати там; лише дві підпапки: ModuleCache та підпапка, ім'я якої відповідає проблемному проекту.
Джеррі Крінок

5

У мене виникли проблеми з збоєм Xcode 5.1, коли я відкрив вікно документа.

Я не впевнений у причині цього, тому що я також оновлював документи, під час відкривання вікна.

Ну а в Xcode 5 каталог модулів тепер знаходиться у похідній папці даних, яку я з очевидних причин не видалив. Я видалив вміст ~ / Library / Developer / Xcode / DerivedData / ModuleCache та ~ / Library / Preferences / com.apple.Xcode.plist, і все, здається, працює, після того як я перезапустив Xcode.


1

Під час використання "Моделі даних" в інспекторі є варіанти для загальних класів, для мене це було так, оскільки вже існував клас із існуючою назвою.

Кодген: вирішив це для мене.

введіть тут опис зображення



0

Ви повинні бути обережними щодо файлу xib. Я спробував усе вищесказане, і мені нічого не вийшло. Я використовував власні UIButtons, визначені в xib, і зрозумів, що це може бути пов'язано з тим, що я призначив атрибути, які не змінюються програмно. Якщо ви там визначили зображення чи текст, видаліть їх. Коли я це зробив, мої програмні зміни почали діяти.


0

Ось моє рішення скрипту оболонки , яке видаляє отримані дані та очищує кешовані ресурси проекту для Xcode 4, 5 та 6.

Іноді просто виклик rm -rf в каталозі «Отримані дані» залишає затяжний файл або два, але мій скрипт циклічний, поки всі файли не будуть видалені.


0

Я намагався майже все, але не міг допомогти, що мені допомогло - відключення SIP (Захист інтеграції системи) n він працює, я не знаю, що відбувається коли і як, але системний файл десь плутається і спричиняє це ... хоча можуть бути ризики щоб відключити це, очевидно

ось як

1. Увімкніть на своєму Mac і утримуйте клавіші [команда] + [R], щоб отримати доступ до розділу відновлення.

2.З розділу відновлення натисніть Утиліти на панелі меню та виберіть Термінал.

3.Введіть у Terminal таку команду і натисніть Enter, щоб виконати її: csrutil disabled

4. Після виконання команди вийдіть з терміналу і перезавантажте Mac. Коли ви знову ввійдете в OS X, SIP буде відключений.


1
Звуки дійсно ризиковані. Що робить SIP?
Тієм

Захист цілісності системи захищає системні файли та каталоги, позначені для захисту. В основному додає більшої безпеки вашій системі, обмежуючи навіть потужність команди sudo
Castro Zwelithini
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.