Как удалить производные данные и очистить проект в Xcode 5 и позже?

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

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

Я посмотрел на этот вопрос, но он кажется немного устаревшим: как очистить кэш и очистить все цели Xcode 4

Я также проверил этот вопрос, но я не хочу тратить время в Организаторе, если мне совершенно не нужно: Как "Удалить производные данные" в Xcode6?

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

1 ответ

Решение

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

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

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

Чтобы вызвать скрипт оболочки ниже, просто введите введите имя функции (в данном случае "ddd") в свой терминал, предполагая, что это в вашем профиле bash. После того, как вы сохранили свой профиль bash, не забудьте обновить окружение вашего терминала, если вы сохранили его открытым, с помощью команды source:
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
}

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

Другой способ удалить производные данные в Xcode - просто удалить папку "Производные данные". Вот наглядное руководство о том, как это легко сделать без использования командной строки: https://www.youtube.com/watch?v=ueEMGXKDBAc

Другие вопросы по тегам