2015-01-16 6 views
12

Есть ли процедура, которую я могу выполнить, включая запуск сценария в терминале, удаление всех файлов в папке с производными данными и надежную очистку проекта?Как удалить исходные данные и очистить проект в Xcode 5 и более поздних версиях?

Иногда активы проекта не всегда обновляются на моем тренажере или устройстве. Это в основном проб и ошибок, и когда я нахожу, что старый актив пробился в тестовую сборку, уже слишком поздно, не говоря уже о смущении!

Я посмотрел на этот вопрос, но мне кажется, немного устарел: How to Empty Caches and Clean All Targets Xcode 4

Я также проверил этот вопрос, но я не хочу тратить время на Организатора, если я не совсем необходимо: How to "Delete derived data" in Xcode6?

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

+0

См. Это: http://iosdevcenters.blogspot.in/2015/12/how-to-delete-derived-data-and-clean.html –

ответ

23

Это в основном двух-трехэтапный процесс, который очищает проект от всех кэшированных активов.

Конечно, если кто-либо использует эту технику, а проект по-прежнему не показывает обновленные активы, то добавьте ответ! Это определенно возможно, что кто-то там столкнулся с ситуациями, требующими шага, который я не включаю.

  1. Чистых ваш проект с Сдвигом - Cmd - K
  2. Удалить полученные данные с помощью вызова сценария оболочки (подробности ниже), определенные в профиле Баша
  3. Удаление приложения из Симулятор или устройство.
  4. Для некоторых видов активов, вы можете также сбросить Simulator (в меню IOS Simulator)

Для вызова скрипт ниже, просто введите ввести имя функции (в данном случае «ДДД») в ваш терминал, если он находится в вашем профиле bash. После того, как вы сохранили свой профиль оргии, не забудьте обновить среду вашего терминала, если вы держали его открытым, с помощью команды источника:
source ~/.bash_profile

ddd() { 
    #Save the starting dir 
    startingDir=$PWD 

    #Go to the derivedData 
    cd ~/Library/Developer/Xcode/DerivedData 

    #Sometimes, 1 file remains, so loop until no files remain 
    numRemainingFiles=1 
    while [ $numRemainingFiles -gt 0 ]; do 
     #Delete the files, recursively 
     rm -rf * 

     #Update file count 
     numRemainingFiles=`ls | wc -l` 
    done 

    echo Done 

    #Go back to starting dir 
    cd $startingDir 
} 

Я надеюсь, что помогает, счастливым кодированию!

+9

Зачем вам нужен скрипт? Просто 'rm -rf ~/Library/Developer/Xcode/DerivedData/*'. – OrangeDog

+0

Иногда один или несколько файлов заблокированы или имеют какое-то другое свойство, которое мешает им немедленно удаляться. Скрипт проверяет это и повторяет попытку, пока это не удастся или не отменено. Кроме того, набрав ddd в терминале намного быстрее, чем стрелка назад к последней команде rm в моей истории или ввод команды rm. – Sheamus

+3

Просто закройте Xcode перед удалением файлов в каталоге. –